欢迎关注,更多精彩等着你!
这是一篇来自IT二部推送的技术硬核分享,重点是作者是一位神秘低调且具有娱乐精神的女程序员,既然如此神秘,照片呢咱们是别想看了,倒是可以一起来研读下她对HTTP 中 GET 与 POST的剖析哦~
我们都知道,GET和POST是HTTP协议定义的。使用什么方式与应用层的数据怎样去传输是没有必然关系的。所以,HTTP没有要求POST必须放到请求体里面,GET必须要放在URL里面。
在HTML的标准里,有类似的定义,但这只是HTML标准对HTTP协议的用法的约定。也就是规范上说,没有区别。
那你们知道这个说法是怎么来的呢?其实是因为各种浏览器等软件的实现,于是呢就变为了我们都很熟知的现象,GET得用URL传参,POST要用body传参。
对于HTTP协议对GET和POST是否有长度的限制,HTTP协议明确指出过没有长度的要求。
而URL长度上的限制,主要是由两方面的因素:
1.服务器
2.浏览器。
本身超长的URL,服务器在处理时已经是一种很大的负担,更何况受到恶意的攻击呀?
所以,通常服务器出于安全和稳定等方面的因素,会给URL长度加限制。不过这个限制只是针对所有HTTP请求的,和GET、POST没有什么关系。而且IE对URL长度限制大约在2048个字符内。
至于安不安全与CET/POST有没有关系的这个问题,首先你得确定要面向的对象了,针对不同的人群,安全的定义就肯定不一样的。
把Get和Post剥开,你会发现其实它们的本质上就是TCP链接,没有什么差别,但是由于HTTP的规定和浏览器或者服务器的限制,在应用的过程中会呈现出它的不同。
下面划重点:
Get产生一个TCP数据包;Post产生两个TCP数据包。
对GET而言,浏览器会将http header和data一起发出去,服务器响应200(返回数据);而对POST而言,浏览器先发header,服务器响应100(continue),然后再发送data,服务器响应200(返回数据)
感谢IT二部小伙伴的内容分享,对你的工作带来了哪些帮助呢,欢迎下方留言与我们互动交流!对了,还记得我们上期的约定吗?每周三都会有部门专题推送哦,据说IT三部也在准备当中了呢,他们将给我们带来哪些精彩内容,一起拭目以待吧~
欢迎 关注瑞友科技中国事业部微信公众号~我们将为大家送上有趣、有料、有温度、有态度的各类图文内容,如果你有想要分享或交流的内容欢迎随时@小编进行留言~祝工作顺利,天天开心!
长按扫码