get和post的区别

Get与Post的区别

1.数据传输上

Get把参数包含在URL中
Post通过request body传递参数。

2.url的可见性

Get的url参数是可见的
Post的url参数是不可见的

3.缓存性

Get能被缓存。
Post不能被缓存

4.书签

Get可收藏书签
Post不可收藏书签

5.对数据长度的限制

Get是存在限制的。当发送数据时,Get向url添加数据时,url的长度是受限的。(URL最大长度是2048)
Post无限制

6.对数据类型的限制

Get只允许ASCII字符
Post没有限制

7.安全性

Get与Post相比,Get安全性差,因为所发送的部分是url的一部分,在发送密码以及敏感信息时绝对不要使用Get。
Post更安全的原因是参数不会被保存在浏览器历史或者web服务器日志中。
但两者从传输角度而言都是不安全的,在http传输中存在被抓包的风险,抓包后能获取数据报文,可以尝试加密的情况下进行安全传输。

8.数据包

GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

9.后退页面的反应

get请求页面后退时,不产生影响
post请求页面后退时,会重新提交请求

10.传输数据的大小

get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)
post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。

原文链接:https://blog.csdn.net/qq_38889350/article/details/112187977

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值