Skip to content

GET和POST的区别有哪些

区别一:幂等性

幂等性:指某个操作或函数无论执行一次还是多次,其结果始终相同

由于GET是,POST是

  1. GET幂等,POST不幂等的(比如重复提交订单)。
  2. 用浏览器打开页面会发送GET请求,想要POST打开页面要用form标签
  3. GET打开的页面刷新无害的,POST打开的页面刷新需要确认
  4. GET结果会被缓存,POST结果不会被缓存(除非手动设置缓存策略)。
  5. GET打开的页面可以被书签收藏,POST打开的不行。

区别二:请求参数

  1. 通常,GET请求参数放在url里,POST请求参数放在body(消息体)里。
  2. GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。(实际都能看到)
  3. GET请求参数放在url里有长度限制的(浏览器和服务器限制了),而POST放在body里没有长度限制(服务器会限制)

区别三:TCP packet

  1. GET产生一个TCP数据包;POST产生两个或以上TCP数据包。

⚠️

GET和POST的最大区别就是语义;一般回答实践过程中二者的区别。