post与get的区别

  1. 安全性:post会比get更加安全,因为get参数直接暴露在URL上,所以不能用来传递敏感信息。
  2. 传参:post通过request body传参;get通过url传参
  3. 参数限制:get只接受ASCII字符,post可以接受任意字符
  4. 记录:get参数会完整保留在浏览器历史记录里,post的参数不会
  5. 长度限制:get参数长度会受不同浏览器的url长度限制(大多数)浏览器通常都会限制url长度在2K个字节;post没有限制
  6. post会产生两个TCP数据包,而get只产生一个TCP数据包(例外:Firefox当中post也是一个TCP数据包)
  7. 缓存:get请求会被浏览器主动cache,而post不会,除非手动设置
  8. get请求只能进行url编码,而post支持多种编码方式

其实,get和post本质上是一样的,都是TCP链接,只是http给规定了不同的TCP链接规矩。但是规矩是规矩,也不一定非要遵守。

就比如,我就非得把post的参数写在url上,有点der,但也不是不行;我非得把get的参数写在request body里面,也就变得安全了,也不是不可以。

但是呢,不是所有浏览器都认get请求的request body里面的数据,也就是说,get虽然能在request body里面存放数据,但是浏览器不一定能够接收到

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

虽然在网络好的时候,传一次或者两次TCP包并无太大区别,但是在网络差的时候,两次包的TCP在验证数据包完整性上,有非常大的优点。

这就否了一些人认为GET仅需要传一个TCP数据包,比POST效率高,要把POST换为GET的想法。

所以说POST与GET还是要按http大BOSS的规矩来的,不能混用哒~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值