HTTP: GET和POST的区别是什么

41 阅读1分钟

区别一:幂等性(操作重复很多遍,并不改变结果,称为幂等)

  1. 由于GET是读,POST是写,所以GET是幂等的,POST是不幂等的。
  2. 由于GET是读,POST是写,所以用浏览器打开网页会发送GET请求,想要POST打开网页要用form标签。
  3. 由于GET是读,POST是写,所以GET打开的页面刷新是无害的,POST打开的页面刷新需要确认。
  4. 由于GET是读,POST是写,所以GET结果会被缓存,POST结果不会被缓存。
  5. 由于GET是读,POST是写,所以GET打开的页面可被书签收藏,POST打开的不行。

记住一般打钱是POST请求,可以解释为什么POST不能被缓存、不能被添加到书签、刷新的时候为什么要确认、为什么需要用一些复杂的form表单才能提交、以及为什么POST不是幂等的,都是因为POST是写。

区别二: 请求参数

  1. 通常,GET请求参数放在url里,POST请求数据放在body(消息体 )里。
  2. GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
  3. GET请求参数放在url里有长度限制,而POST放在body里没有长度限制。

区别三:TCP packet

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

要点:根据技术规格文档,GET和POST最大区别是语义;