GET和POST区别

GET是用于获取信息,无副作用,幂等且可缓存,而POST用于修改数据,有副作用且不可缓存。GET请求的参数在URL中可见,POST通过请求体传输,相对隐蔽。尽管POST理论上更安全,但安全性主要取决于数据加密方式。GET和POST在TCP数据包发送上也有所不同,GET一次发送,POST需两次。
摘要由CSDN通过智能技术生成

GET和POST是什么?HTTP协议中的两种发送请求的方法。

  • url可见性:
    get,参数url可见;
    post,url参数不可见

  • 数据传输:
    get,通过拼接url进行传递参数;
    post,通过body体传输参数

  • 缓存性:
    get请求是可以缓存的
    post请求不可以缓存

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

  • 传输数据的大小
    get一般传输数据大小不超过2k-4k
    post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。

  • 安全性
    这个也是最不好分析的,原则上post肯定要比get安全,毕竟传输参数时url不可见,但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的,防君子不防小人就是这个道理。对传递的参数进行加密,其实都一样。

GET和POST还有一个重大区别,简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包

长的说:

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

也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。

下面关于http Get和Post说法正确的有哪些? ABCD

A. GET 用于获取信息,是无副作用的,是幂等的,且可缓存;
B. POST 用于修改服务器上的数据,有副作用,非幂等,不可缓存;
C. Http Get的数据在 URL 中对所有人都是可见的;
D. POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中;

TCP与UDP区别
http 三次握手 四次挥手
Okhttp之五种拦截器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值