get和post的本质区别

一、标准答案

1.get请求有大小限制,一般为2kb,post一般没有大小限制。

2.get请求放在url中,post请求放在报文体中

3.get请求在url中可见,安全性不如post

4.get请求具有幂等性,post请求不具有幂等性

 

二、本质答案:

1.二者都是http请求,基于tcp/ip传输,并无差别。但是由于Http的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

(1)http就像是交通规则,给TCP设立几种标签:GET, POST, PUT, DELETE。
-》get标签就将东西放在车顶
-》post标签就将东西放在车内

(2)浏览器和服务器就像运输公司,会限制单次传输的数量。

(2)http是行为准则,tcp连接才是本质

2.get产生一个TCP数据包,post产生两个TCP数据包

(1)get:浏览器把http header和data一起发送,服务器响应200;

(2)post:浏览器先发header,服务器响应100continus。浏览器再发data,服务器响应200;

->看起来发两次会性能比较低,但实际上可靠性提升了很多

->post和get都有自己的语义,不能随便乱用

->不是所有的浏览器对post都会发两次,fireFox就只发一次。

 

参考文章:https://www.oschina.net/news/77354/http-get-post-different

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IMUHERO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值