HTTP中Get和Post的区别总结

get和post的区别:

get和post都是HTTP协议里的请求方法。

应用层的区别如下:
请求缓存:GET 会被缓存,而post不会
收藏书签:GET可以,而POST不能
保留浏览器历史记录:GET可以,而POST不能
用处:get常用于取回数据,post用于提交数据
安全性:post比get安全
请求参数:querystring 是url的一部分get、post都可以带上。 get的querystring(仅支持urlencode编码),post的参数是放在body(支持多种编码)
请求参数长度限制:get请求长度最多1024kb,post对请求数据没有限制

原因:
对于缓存、书签、浏览器记录:归根到底还是请求方式不同 。get使用的url可以完成上述操作,而对于把信息存在请求体body里的post则不行。
对于用处:HTTP协议基于的TCP/IP完成,get,post实质都是TCP链接,但是由于get使用拼接url的方式导致有字符数的限制,所以容易提交受限(理论上如果不超过字符数限制也可以完成数据提交),而使用请求体的post则不用担心因字符数而受限。
对于安全性:get的url会被劫持,而post使用请求体则不会。
对于请求参数:两种支持的编码方式不同。
对于参数长度限制:get请求需要拼接url,由于浏览器自身性能考虑,所以对URL的长度进行限制。而post是body请求体。

传输层的区别如下:
GET产生一个TCP数据包;POST产生两个TCP数据包。

注意:post比get相对安全,在网络良好的情况下,时间差可以忽视。在网络不好的情况下,post两个包可以更好的保证数据完整性。(不是所有的浏览器post都是两个包,比如Firefox)。

菜鸡一枚 欢迎各位大佬指正!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值