Get请求与Post请求的区别

Javascript 496849654@qq.com 2年前 (2020-06-17) 519次浏览 0个评论

Get请求与Post请求的区别

首先:
  一般来说,我们发送get是希望从服务器上获取数据,post请求需要向服务器传送数据。

1. get 在浏览器回退时是无害的,post 会再次提交数据
2. get 产生的url 地址可以被 bookmark,post 则不可以
3. get 请求会被浏览器主动cache (缓存),post 则不会,除非手动设置
4. get 请求参数会被完整保留在浏览器历史记录里,而post中参数不会被保留

5. get 只接受ASCII 码字符,而post 没有限制
6. get 请求只能进行url 编码,而post 支持多种编码方式。

7. get 把请求参数放在url 上,即http协议头上,post 放在Request body请求体中。
故get 比post 更不安全,不能用来传递敏感信息。

附:get 参数放在url上,以?分割url,参数之间以&相连;英文/数字,不做改变,原样发送;
空格转换为+;中文/其他字符,则用base64加密,即%加上“十六进制ASCII码”

8. get 一般来说提交的数据最大是2k;(原则上url 长度无限制,但大多数浏览器通常都会限制url 长度在2k(2048字节byte))
post 理论上没有限制,实际上IIS4中最大量为80k,IIS5中为100k。

9. get 产生一个tcp 数据包,浏览器会把http header 和data 一并发送出去,服务器响应200(返回数据)
post 产生两个tcp 数据包,浏览器会先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200(返回数据)

附:Http 是基于tcp/ip 关于数据如何在万维网中通信的协议。所以http 的底层是tcp/ip,get 、post 的底层也是tcp/ip,
也就是说,get、post 都是tcp 连接


css315 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Get请求与Post请求的区别
喜欢 (2)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到