区别一:幂等性
(如果多个完全相同的请求和单个请求,在服务器上的预期效果相同的话,这个请求方法则被认为是幂等的)
- 由于GET是读,POST是写,所以GET是幂等,POST不是幂等;
- 由于GET是读,POST是写,所以游览器打开网页会发送GET请求,想要POST打开网页要from标签
- 由于GET是读,POST是写,所以GET打开的页面刷新是无害的,POST打开的页面需要需要刷新确认
- 由于GET是读,POST是写,所以GET会被缓存,POST结果不会被缓存
- 由于GET是读,POST是写,所以GET打开打开页面可以收藏,POST不行
区别二:请求参数
- 通常,GET请求参数放在url里,POST请求参数放在body(消息体)里
- GET比POST更不安全,因为参数会直接暴露在url上,不能用来传递敏感信息
- GET请求参数放在url里是有长度限制,而在POST放在body里没有长度限制
区别三:TCP packet
GET产生的一个TCP数据包;POST产生两个或以上的TCP数据包
GET和POST最大的区别就是语义上的区别