99%的人理解错了 HTTP 中 GET 与 POST 的区别

by admin on 2020年4月25日

GET和POST是HTTP要求的二种基本措施,要说它们的界别,接触过WEB开荒的人都能透露一二。

最直观的区分就是GET把参数包含在U景逸SUVL中,POST通过request body传递参数。

您可能自身写过不菲个GET和POST央求,只怕曾经看过大多权威网址总计出的他们的区分,你可怜懂获知道怎么样时候该用什么。

当您在面试中被问到这么些主题材料,你的心扉充满了自信和欢跃。

澳门新葡亰信誉平台游戏 1

您轻巧的交付了一个“标准答案”:

  • GET在浏览器回降时是无毒的,而POST会再一次提交乞请。

  • GET暴发的U索罗德L地址能够被Bookmark,而POST不得以。

  • GET须要会被浏览器主动cache,而POST不会,除非手动设置。

  • GET诉求只可以实行url编码,而POST援助多样编码情势。

  • GET诉求参数会被完整保存在浏览器历史记录里,而POST中的参数不会被保留。

  • GET央浼在U卡宴L中传送的参数是有长度约束的,而POST么有。

  • 对参数的数据类型,GET只选择ASCII字符,而POST没有节制。

  • GET比POST更不安全,因为参数直接暴光在U瑞鹰L上,所以不可能用来传递敏感消息。

  • GET参数通过U帕JeroL传递,POST放在Request body中。

澳门新葡亰信誉平台游戏,(本标准答案参照他事他说加以考察自w3schools)

“很可惜,那不是我们要的作答!”

澳门新葡亰信誉平台游戏 2

请告诉自个儿精气神儿。。。

假若自己报告您GET和POST本质上尚无分裂你信吗? 
让大家扒下GET和POST的外衣,诚恳相见吧!

GET和POST是什么?HTTP左券中的三种发送伏乞的不二等秘书籍。

HTTP是怎么着?HTTP是依据TCP/IP的有关数据如何在环球网中怎么着通讯的磋商。

HTTP的平底是TCP/IP。所以GET和POST的尾部也是TCP/IP,也正是说,GET/POST都以TCP链接。GET和POST能做的政工是同等相仿的。你要给GET加上request
body,给POST带上url参数,技术上是完全行的通的。 

那就是说,“标准答案”里的那二个差距是怎么回事?

澳门新葡亰信誉平台游戏 3

在作者大万维网世界中,TCP就如汽车,大家用TCP来运输数据,它很保障,平昔不会生出丢件少件的气象。然而只要中途跑的全都以看起来一模二样的汽车,那这些世界看起来是一团混乱,送急件的轿车可能被眼下满载货色的小车拦堵在途中,整个交通系统一定会瘫痪。为了幸免这种状态产生,交通法规HTTP诞生了。HTTP给小车运输设定了大多少个劳务类型,有GET,
POST, PUT,
DELETE等等,HTTP规定,当实践GET央求的时候,要给汽车贴上GET的标签(设置method为GET),並且必要把传送的数额放在车的上端上(url中)以方便记录。假诺是POST央求,将要在车里贴上POST的价签,并把货品放在车厢里。当然,你也足以在GET的时候往车厢内偷偷藏点货色,可是那是非常不光华;也得以在POST的时候在车的上端上也放一些数码,让人以为傻乎乎的。HTTP只是个行为准绳,而TCP才是GET和POST怎么贯彻的中坚。

可是,大家只见到HTTP对GET和POST参数的传递门路(url依然requrest
body)提出了必要。“规范答案”里关于参数大小的限量又是从哪来的啊?

澳门新葡亰信誉平台游戏 4

在自己大环球网世界中,还大概有另三个关键的剧中人物:运输公司。分化的浏览器(发起http央求)和服务器(选用http须求)正是差异的运送集团。
就算理论上,你能够在车的上端上最棒的堆物品(url中最佳加参数)。可是运输集团可不傻,装货和卸货也许有十分的大开支的,他们会节制单次运输量来调节危机,数据量太大对浏览器和服务器都以超大负责。产业界不成文的鲜明是,(大超级多)浏览器经常都会约束url长度在2K个字节,而(大超多)服务器最多管理64K大大小小的url。超越的一对,恕不处理。借使您用GET服务,在request
body偷偷藏了数额,分歧服务器的管理方式也是众说纷繁的,有些服务器会帮您卸货,读出多少,某些服务器直接忽视,所以,即使GET能够带request
body,也不可能确定保证一定能被摄取到啊。

好了,今后您掌握,GET和POST本质上就是TCP链接,并无差距。然而出于HTTP的分明和浏览器/服务器的范围,引致他们在应用进度中反映出有个别不等。 

您感觉本文就那样停止了?

澳门新葡亰信誉平台游戏 5

咱俩的大BOSS还等着出台呢。。。

那位BOSS有多神秘?当你筹划在互联网找“GET和POST的不一样”的时候,那叁个你拜访到的寻觅结果里,从不曾涉嫌他。他毕竟是怎样吗。。。

GET和POST还恐怕有二个首要分歧,简来讲之:

GET发生一个TCP数据包;POST爆发三个TCP数据包。

长的说:

对此GET方式的乞请,浏览器会把http
header和data一并发送出去,服务器响应200(重临数据);

而对此POST,浏览器首发送header,服务器响应100
continue,浏览器再发送data,服务器响应200 ok(再次回到数据)。

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

因为POST要求两步,时间上海消防耗的要多或多或少,看起来GET比POST更有效。因而Yahoo团队有推荐用GET替换POST来优化网址质量。但那是多个坑!跳入需严慎。为何?

  1. GET与POST都有和好的语义,不能够随意混用。

2.
据研讨,在网络意况好的景况下,发一回包的时日和发一遍包的日子差距基本能够藐视。而在网络意况差的意况下,两遍包的TCP在表达数据包完整性上,有十分的大的优点。

  1. 实际不是持有浏览器都会在POST中发送若干遍包,Firefox就只发送一回。

今昔,当面试官再问你“GET与POST的分裂”的时候,你的心尖是或不是如此的?

澳门新葡亰信誉平台游戏 6

转自:WebTechGarden
Wechat群众号

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图