POST请求与GET请求区别(转载)

原文地址:99%的人都理解错了HTTP中GET与POST的区别

GET和POST请求在本质上都是TCP链接,并没有什么区别

Get 请求仅受限于浏览器对 URL 的长度的限制,过长可能会被截断
但是 HTTP 的规定和 浏览器 / 服务器 的限制,导致他们在应用过程中体现了一些不同

大多数的浏览器都会限制url长度在2k个字节,大多数服务器最多处理64k大小的url,超出部分恕不处理

如果你用 GET 服务,在 request body 中偷偷藏了数据,不同服务器的处理方式也是不同的,有的服务器会帮你处理,读出数据;有的服务器直接忽略,所以,虽然 GET 请求可以带 request body,也不能保证一定被接收到


两者最大的区别:

GET请求产生一个 TCP 数据包,POST 产生两个 TCP 数据包

  1. 对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去, 服务器响应200(返回数据)
  2. 对于 POST 方式则需要两步,浏览器先发送了 header ,服务器响应 100 continue,浏览器再发送data,服务器响应200(返回数据)

使用 GET 替代 POST 来优化网站性能 ?

不,GET 与 POST 都有自己的语义,不能随便混用

据研究,在网络环境好的情况下,发两次包和发一次包的时间差基本可以无视;而在网络环境差的情况下,两次包的 TCP 在验证数据包的完整性上有非常大的优点

再一个就是,并不是所有的浏览器都会在 POST 中发送两次包,Firefox 就只发送了一次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值