区别一:幂等性 (操作很多次,结果是不变的)
- 由于 GET 是读,POST 是写,所以 GET 是幂等的,POST 不是幂等的。
- 由于 GET 是读,POST 是写,所以用浏览器打开网页会发送 GET 请求,想要 POST 打开网页要用 form 标签。
- 由于 GET 是读,POST 是写,所以 GET 打开的页面刷新是无害的,POST 打开的页面刷新需要确认。
- 由于 GET 是读,POST 是写,所以 GET 结果会被缓存,POST 结果不会被缓存。
- 由于 GET 是读,POST 是写,所以 GET 打开的页面可被书签收藏,POST 打开的不行。
区别二:请求参数
- 通常,GET 请求参数放在 url 里,POST 请求数据放在 body(消息体)里。
- GET 比 POST 更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。(不认同)
- GET 请求参数放在 url 里是有长度限制的,而 POST 放在 body 里没有长度限制。(不认同) 414状态码:通常代表请求参数过长
区别三:TCP packet
- GET 产生一个 TCP 数据包;POST 产生两个或以上 TCP 数据包。 get 只有header
post 既有header 和 body
根据技术规格文档,GET 和 POST 最大的区别是语义;