>

的人都精通错了HTTP中GET与POST的区分

- 编辑:至尊游戏网站 -

的人都精通错了HTTP中GET与POST的区分

99%的人都知道错了HTTP中GET与POST的区分

2016/09/23 · 功底能力 · 11 评论 · GET, HTTP, POST

初稿出处: WebTechGarden   

GET和POST是HTTP央浼的三种为主情势,要说它们的区分,接触过WEB开辟的人都能表露后生可畏二。

最直观的区分正是GET把参数富含在U陆风X8L中,POST通过request body传递参数。

您只怕本人写过众三个GET和POST央求,可能已经看过非常多权威网址计算出的他们的区分,你非常清楚了解怎么时候该用什么。

当你在面试中被问到这些主题材料,你的心目充满了自信和喜悦。

图片 1

你轻便的付出了一个“标准答案”:

  • GET在浏览器回降时是无毒的,而POST会再度提交央求。
  • GET发生的U翼虎L地址能够被Bookmark,而POST不可能。
  • GET央求会被浏览器主动cache,而POST不会,除非手动设置。
  • GET乞请只好进行url编码,而POST帮衬各个编码方式。
  • GET诉求参数会被完好保存在浏览器历史记录里,而POST中的参数不会被封存。
  • GET伏乞在UENCOREL中传递的参数是有长度节制的,而POST么有。
  • 对参数的数据类型,GET只接纳ASCII字符,而POST未有界定。
  • GET比POST更不安全,因为参数直接揭露在U奇骏L上,所以无法用来传递敏感消息。
  • GET参数通过URAV4L传递,POST放在Request body中。

(本规范答案参考自w3schools卡塔尔

“很缺憾,那不是大家要的答应!”

图片 2

请告知本身精气神。。。

借使本身告诉你GET和POST本质上从没有过分别你信呢?
让我们扒下GET和POST的外衣,真诚相见吧!

图片 3

GET和POST是怎么着?HTTP契约中的两种发送乞求的不二等秘书籍。

HTTP是怎么着?HTTP是依赖TCP/IP的关于数据怎样在环球网中怎么着通讯的情商。

HTTP的平底是TCP/IP。所以GET和POST的后面部分也是TCP/IP,也便是说,GET/POST都以TCP链接。GET和POST能做的事体是同等相符的。你要给GET加上request body,给POST带上url参数,技艺上是完全行的通的。

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

图片 4

在笔者大环球网世界中,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卡塔尔建议了须求。“规范答案”里关于参数大小的限量又是从哪来的啊?

图片 5

在笔者大环球网世界中,还应该有另三个首要的剧中人物:运输公司。不一致的浏览器(发起http须求卡塔 尔(英语:State of Qatar)和服务器(接纳http央浼卡塔尔国正是例外的运载集团。 尽管理论上,你能够在车的最上端上最佳的堆货色(url中可是加参数卡塔 尔(英语:State of Qatar)。不过运输集团可不傻,装货和卸货也会有相当的大开销的,他们会约束单次运输量来支配风险,数据量太大对浏览器和服务器都以十分大肩负。业界不成文的规定是,(大好多卡塔尔浏览器日常都会节制url长度在2K个字节,而(大多数卡塔尔服务器最多管理64K朗朗上口的url。当先的后生可畏部分,恕不管理。即使您用GET服务,在request body偷偷藏了数量,分裂服务器的管理方式也是见仁见智的,有个别服务器会帮您卸货,读出多少,有个别服务器直接忽视,所以,就算GET能够带request body,也无法确认保障一定能被吸纳到啊。

好了,今后您明白,GET和POST本质上正是TCP链接,并无异。可是由于HTTP的鲜明和浏览器/服务器的约束,以致她们在动用进程中显示出生龙活虎部分不生龙活虎。

您感到本文如同此截止了?

图片 6

大家的大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的界别”的时候,你的内心是还是不是那样的?

图片 7

4 赞 33 收藏 11 评论

图片 8

本文由硬件数码发布,转载请注明来源:的人都精通错了HTTP中GET与POST的区分