赞
踩
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必然行为。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。