GET和POST的区别

GET和POST的区别主要有以下五点:

  1. GET和POST最本质的区别是规范上的区别:在规范中,定义GET请求是用来获取资源的,也就是进行查询操作的;而POST请求是用来传输实体对象的,因此会使用POST来进行添加、修改和删除等操作。

  2. GET请求参数通过URL传递,而POST的参数放在请求体中。

  3. GET请求可以直接进行回退和刷新,不会对用户和程序产生任何影响,而POST请求如果直接回滚和刷新将会把数据再次提交。

  4. GET请求一般会被缓存,比如常见的CSS、JS、HTML请求等都会被缓存;而POST请求默认是不进行缓存的

  5. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

补充:

GET产生一个TCP数据包;POST产生两个TCP数据包。
对于GET方式的请求,浏览器会把请求头和请求体一并发送出去;
而对于POST,浏览器先发送请求头,服务器响应100状态码,浏览器再发送请求体;

有些文章中提到,POST会将 header 和 body 分开发送,先发送 header,服务端返回 100 状态码再发送 body。

HTTP 协议中没有明确说明 POST 会产生两个 TCP 数据包,而且实际测试发现(谷歌浏览器),header 和 body 不会分开发送。

所以,header 和 body 分开发送是部分浏览器或框架的请求方法,不属于 POST必然行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值