GET和POST的区别主要有以下五点:
-
GET和POST最本质的区别是规范上的区别:在规范中,定义GET请求是用来获取资源的,也就是进行查询操作的;而POST请求是用来传输实体对象的,因此会使用POST来进行添加、修改和删除等操作。
-
GET请求参数通过URL传递,而POST的参数放在请求体中。
-
GET请求可以直接进行回退和刷新,不会对用户和程序产生任何影响,而POST请求如果直接回滚和刷新将会把数据再次提交。
-
GET请求一般会被缓存,比如常见的CSS、JS、HTML请求等都会被缓存;而POST请求默认是不进行缓存的
-
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
补充:
GET产生一个TCP数据包;POST产生两个TCP数据包。
对于GET方式的请求,浏览器会把请求头和请求体一并发送出去;
而对于POST,浏览器先发送请求头,服务器响应100状态码,浏览器再发送请求体;
有些文章中提到,POST会将 header 和 body 分开发送,先发送 header,服务端返回 100 状态码再发送 body。
HTTP 协议中没有明确说明 POST 会产生两个 TCP 数据包,而且实际测试发现(谷歌浏览器),header 和 body 不会分开发送。
所以,header 和 body 分开发送是部分浏览器或框架的请求方法,不属于 POST必然行为。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/204361.html