最后更新:2022-07-05 23:37:09 手机定位技术交流文章
GET和 POST是HTTP请求的两个基本方法,说他们之间的区别,也许我们从中得到的是:GET包含URL中的参数, POST通过请求体传递参数。
正式的标准答案如下:
当然,在面试中回答这些问题也是好的。你认为我们会给你面试的答案吗?
如果我告诉你,GET和 POST不是与你所信的本质不同,怎么办?
首先我们需要理解什么是GET和 POST?
在HTTP协议中发送请求有两种方式。
什么是HTTP?HTTP是一个基于TCP/IP的协议,描述数据如何在多维网络中通信。
HTTP的底层是TCP/IP。因此GET和 POST的下层也是TCP/IP,也就是说,GET/POST是所有TCP链接。GET和 POST是同样的事情。你将添加请求机构来获取,发送url参数,技术上是完美的。
那么问题是,上面所有的标准答案是什么?
TCP就像汽车,我们使用TCP来传输数据,它很可靠,没有几个缺货的现象。但是如果路上的车子都一样,那世界看起来很混乱,一辆载有货物的卡车在路上可能堵塞一辆救护车.整个运输系统将瘫痪。
为了避免这种情况,HTTP的交通规则诞生了。HTTP已经为汽车运输设置了几个服务类别,有GET, POST, PUT, DELETE等.HTTP规定,执行GET请求时,将车标记为GET(设置方法为GET),它还要求传输的数据放在汽车的顶部(在url)以便方便的记录。如果 POST请求,你必须把邮寄标签放在车上,把货物放在车厢里.
当然,当你收到货时,你可以在车里隐藏一些货物,但这并不十分华丽;当你发送它时,你也可以把一些数据放在车顶上,这让你看起来很傻。
我们只看到传输通道(url或requrest体)的GET和 POST参数的HTTP请求。标准答案中,参数大小的限制是从哪里来的?

在我的世界大网中,还有另一个重要角色:运输公司。 不同的浏览器(启动http请求)和服务器(接收http请求)是不同的运输公司。
但运输公司并不愚蠢,船运和卸货也是非常昂贵的,他们将限制单一运输量以控制风险,太多的数据对浏览器和服务器都是沉重的负担。行业 的 非 书面 规定 是 :大多数浏览器通常限制url的长度为2K字节,大多数服务器处理最大64K的url。超过的部分,恕不处理。
如果你使用GET服务,在请求体中隐藏数据,不同的服务器也有不同的处理方法,有些服务器会帮助您卸载货物,读出数据,有些服务器直接忽略它,所以,虽然GET可以携带请求机构,我不能保证会接受。
好吧,现在你知道,GET和 POST基本上是TCP链接,没有区别。 不过,由于HTTP规则和浏览器/服务器的限制,一些区别反映在他们的应用程序中。
GET 和 POST 之间也有很大区别,简单地说:
GET生成一个TCP包; POST生成两个TCP包
换句话说,GET只得开车一次才能交货,而Post则必须两次,第一次,向服务器问好:"你好,我等着交货,你开门欢迎我,"然后转身交货。
因为 POST 需要两个步骤,需要更多的时间,所以GET 似乎比 POST 更有效。 因此,雅虎团队建议使用GET 而不是 POST 来优化网站的性能。
1.GET和 POST都有各自的语义,不能混淆。
2.根据研究,在良好的网络环境下,一个数据包的时间和两个数据包的时间之间的差异是可以忽略的。 在较差的网络环境下,有两个数据包的TCP在验证数据包完整性方面具有很大的优势。
3.并非所有的浏览器都发送两个包,而Firefox只发送一个包。
现在你转过身去看看上面的标准答案,你有更深层次的洞察力吗!
本文由 在线网速测试 整理编辑,转载请注明出处。