成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

HTTP中GET與POST的區(qū)別 99%的錯(cuò)誤認(rèn)識(shí)

Bowman_han / 2630人閱讀

摘要:不會(huì)產(chǎn)生動(dòng)作意味著和的請(qǐng)求不會(huì)在服務(wù)器上產(chǎn)生任何結(jié)果。對(duì)長(zhǎng)度的限制是字節(jié)。起限制作用的是服務(wù)器的處理程序的處理能力。很可能受到中文名稱(chēng)跨站請(qǐng)求偽造攻擊。而數(shù)據(jù)大小,則是因?yàn)闉g覽器的限制造成的。請(qǐng)開(kāi)始你的表演參考文章的人都理解錯(cuò)了中與的區(qū)別

本篇文章分兩部分,第一部分可以列為初為新人的裝逼失敗模式,第二部分列為修煉低調(diào)模式。
裝逼失敗模式:99%的人對(duì)GET和POST的認(rèn)識(shí)
修煉低調(diào)模式:1%不知道的進(jìn)階認(rèn)識(shí)

GET和POST,在我們?nèi)粘EB開(kāi)發(fā)中,是最常用的數(shù)據(jù)傳輸方式。面試中我們也經(jīng)常會(huì)遇到。
一般我們?cè)跒g覽器輸入一個(gè)網(wǎng)址URL訪問(wèn)網(wǎng)站都是GET方式請(qǐng)求;
在HTML FROM表單中,可以通過(guò)設(shè)置method指定提交方式為GET或者POST方式,默認(rèn)為GET提交方式

HTTP定義了與服務(wù)器交互的不同方法,其中最基本的四種:GET,POST,PUT,DELETE,HEAD;
其中GET和HEAD被稱(chēng)為安全方法,因?yàn)槭褂肎ET和HEAD的HTTP請(qǐng)求不會(huì)產(chǎn)生什么動(dòng)作。不會(huì)產(chǎn)生動(dòng)作意味著GET和HEAD的HTTP請(qǐng)求不會(huì)在服務(wù)器上產(chǎn)生任何結(jié)果。但是安全方法并不是什么動(dòng)作都不產(chǎn)生,這里的安全方法僅指不會(huì)修改信息。

GET和POST我們比較常用,其它幾種實(shí)際應(yīng)用比較少用到,在此僅作了解。


99%的人所認(rèn)為的GET和POST 1. 傳輸方式(自我理解“顯示方式”)

GET請(qǐng)求的數(shù)據(jù)會(huì)附加在URL之后,以?分割URL和傳輸數(shù)據(jù),多個(gè)參數(shù)之間以&連接,
"http://www.xxx.com/product?type=shoe&price=100&sex=male"
數(shù)據(jù)格式有以下注意點(diǎn):

如果數(shù)據(jù)是英文字母/數(shù)字,原樣發(fā)送;

如果是空格,轉(zhuǎn)換為+;

如果是中文或其他字符,則把數(shù)據(jù)用Base64加密,
"%E4%BD%A0%E5%A5%BD"其中%XX中的XX為該符號(hào)以16進(jìn)制表示的ASCII碼。

POST請(qǐng)求會(huì)把請(qǐng)求的數(shù)據(jù)放置在HTTP請(qǐng)求包的包體中,GET傳輸?shù)臄?shù)據(jù)會(huì)直接暴露在URL中,而POST請(qǐng)求則不會(huì)。

2. 傳輸數(shù)據(jù)大小

GET方式傳輸?shù)臄?shù)據(jù)最多只能是1024字節(jié),
因?yàn)镚ET是通過(guò)URL提交數(shù)據(jù),那么GET可提交的數(shù)據(jù)量就跟URL的長(zhǎng)度有直接關(guān)系,URL本身不存在參數(shù)上限的問(wèn)題,HTTP協(xié)議規(guī)范也沒(méi)有對(duì)URL長(zhǎng)度進(jìn)行限制。
這個(gè)限制是特定的瀏覽器及服務(wù)器對(duì)它的限制。IE對(duì)URL長(zhǎng)度的限制是2083字節(jié)(2K+35)。對(duì)于其他瀏覽器,如Netscape、FireFox等,理論上沒(méi)有長(zhǎng)度限制,其限制取決于操作系統(tǒng)的支持。

注意:限制是針對(duì)整個(gè)URL長(zhǎng)度,不單是傳輸?shù)臄?shù)據(jù)長(zhǎng)度。

POST方式理論上沒(méi)有限制,可傳較大的數(shù)據(jù)。起限制作用的是服務(wù)器的處理程序的處理能力。Apache, Nigx, IIS服務(wù)器自身可配置限制傳輸大小。

3. GET在瀏覽器回退是無(wú)害的,而POST會(huì)再次提交請(qǐng)求 4. GET產(chǎn)生的URL可以作為標(biāo)簽或存于歷史記錄中,而POST不可以 5. GET請(qǐng)求會(huì)被瀏覽器主動(dòng)cahe,而POST不會(huì),除非手動(dòng)設(shè)置 6. 安全性

GET傳輸?shù)臄?shù)據(jù)直接暴露在URL中,如果我們?cè)谧鲇脩?hù)登錄時(shí),需要傳輸?shù)卿泿ぬ?hào)及密碼到后端做驗(yàn)證,如果用GET方式,那么賬戶(hù)密碼直接暴露在URL里面,是極其危險(xiǎn)的。
而且瀏覽器緩存的機(jī)制,訪問(wèn)過(guò)的網(wǎng)站URL會(huì)被保存在瀏覽器歷史記錄里,其他人可通過(guò)歷史記錄查看訪問(wèn)網(wǎng)站URL,直接獲取到傳輸?shù)臄?shù)據(jù)。
很可能受到 "Cross-site request forgery"(中文名稱(chēng):跨站請(qǐng)求偽造) 攻擊。
不過(guò)POST的數(shù)據(jù)也是可以被攔截的。

總結(jié):

GET請(qǐng)求是用來(lái)向服務(wù)器發(fā)送索取數(shù)據(jù)的一種請(qǐng)求,實(shí)際應(yīng)用中數(shù)據(jù)不涉及到安全性,可用GET方式來(lái)向后端請(qǐng)求數(shù)據(jù),
如分頁(yè)或搜索關(guān)鍵詞 "http://www.xxx.com/product?keywords=xxx&page=2";

POST請(qǐng)求是向服務(wù)器提交數(shù)據(jù)的一種請(qǐng)求,涉及到安全性的數(shù)據(jù),用POST的方式來(lái)傳輸較GET更安全。


曾經(jīng)的曾經(jīng),我也是那99%的一員,還把自己歸納的文章發(fā)給新人同事看,然后裝逼失敗,被老大引導(dǎo)練成最后的這1%。


1%的人所擁有的

GET和POST本質(zhì)上是沒(méi)有區(qū)別的,它們是HTTP協(xié)議中的兩種發(fā)送請(qǐng)求的方式。
HTTP是基于TCP/IP的關(guān)于數(shù)據(jù)如何在萬(wàn)維網(wǎng)中通信的協(xié)議,即HTTP的底層是TCP/IP,所以GET和POST的底層也是TCP/IP,也就是說(shuō):GET/POST都是TCP鏈接。
給POST帶上url參數(shù),給GET加上request body,技術(shù)上是可以實(shí)現(xiàn)的。

為了更方便的管理,避免混亂,HTTP給這些請(qǐng)求定義GET,POST,PUT,DELETE。
而數(shù)據(jù)大小,則是因?yàn)闉g覽器的限制造成的。

所以GET和POST本質(zhì)上就是TCP鏈接,并無(wú)差別。但是由于HTTP的規(guī)定和瀏覽器/服務(wù)器的限制,導(dǎo)致他們?cè)趹?yīng)用過(guò)程中體現(xiàn)出一些不同

隱藏的Buff

GET產(chǎn)生一個(gè)TCP數(shù)據(jù)包,而POST產(chǎn)生兩個(gè)TCP數(shù)據(jù)包

GET的請(qǐng)求,瀏覽器會(huì)把http header和data一并發(fā)送出去,服務(wù)器返回200(返回?cái)?shù)據(jù))
POST的請(qǐng)求,瀏覽器先發(fā)送header,服務(wù)器響應(yīng)100 continue,瀏覽器再發(fā)送data,服務(wù)器響應(yīng)200(返回?cái)?shù)據(jù))

因?yàn)镻OST需要兩步,時(shí)間上消耗的多一點(diǎn),
不過(guò)網(wǎng)絡(luò)環(huán)境好的情況下,發(fā)一次包的時(shí)間和發(fā)兩次包的時(shí)間差別基本可以無(wú)視。
網(wǎng)絡(luò)環(huán)境差的情況下,兩次包的TCP在驗(yàn)證數(shù)據(jù)包完整性上,有非常大的優(yōu)點(diǎn)

并不是所有瀏覽器POST發(fā)送兩次包,F(xiàn)iefox就發(fā)送一次。

最后的最后,當(dāng)你以后被別人問(wèn)到的時(shí)候,你就可以。。。。。。請(qǐng)開(kāi)始你的表演

參考文章:《99%的人都理解錯(cuò)了HTTP中GET與POST的區(qū)別》

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/51185.html

相關(guān)文章

  • HTTPGETPOST區(qū)別 99%錯(cuò)誤認(rèn)識(shí)

    摘要:不會(huì)產(chǎn)生動(dòng)作意味著和的請(qǐng)求不會(huì)在服務(wù)器上產(chǎn)生任何結(jié)果。對(duì)長(zhǎng)度的限制是字節(jié)。起限制作用的是服務(wù)器的處理程序的處理能力。很可能受到中文名稱(chēng)跨站請(qǐng)求偽造攻擊。而數(shù)據(jù)大小,則是因?yàn)闉g覽器的限制造成的。請(qǐng)開(kāi)始你的表演參考文章的人都理解錯(cuò)了中與的區(qū)別 本篇文章分兩部分,第一部分可以列為初為新人的裝逼失敗模式,第二部分列為修煉低調(diào)模式。裝逼失敗模式:99%的人對(duì)GET和POST的認(rèn)識(shí)修煉低調(diào)模式:1...

    isaced 評(píng)論0 收藏0
  • HTTPGETPOST區(qū)別 99%錯(cuò)誤認(rèn)識(shí)

    摘要:不會(huì)產(chǎn)生動(dòng)作意味著和的請(qǐng)求不會(huì)在服務(wù)器上產(chǎn)生任何結(jié)果。對(duì)長(zhǎng)度的限制是字節(jié)。起限制作用的是服務(wù)器的處理程序的處理能力。很可能受到中文名稱(chēng)跨站請(qǐng)求偽造攻擊。而數(shù)據(jù)大小,則是因?yàn)闉g覽器的限制造成的。請(qǐng)開(kāi)始你的表演參考文章的人都理解錯(cuò)了中與的區(qū)別 本篇文章分兩部分,第一部分可以列為初為新人的裝逼失敗模式,第二部分列為修煉低調(diào)模式。裝逼失敗模式:99%的人對(duì)GET和POST的認(rèn)識(shí)修煉低調(diào)模式:1...

    MartinDai 評(píng)論0 收藏0
  • 后端集錦

    摘要:數(shù)據(jù)異構(gòu)的武器何謂數(shù)據(jù)異構(gòu),上周交易部門(mén)商品的同事過(guò)來(lái)做分享,又看到這個(gè)詞,他的里面是數(shù)據(jù)庫(kù)異構(gòu)。其實(shí)我們以前做的事情,也是可以成為數(shù)據(jù)異構(gòu)。比如我們將里面的數(shù)據(jù)持久化到里面去,就是一種數(shù)據(jù)異構(gòu)的方式。 如果有人問(wèn)你數(shù)據(jù)庫(kù)的原理,叫他看這篇文章 一提到關(guān)系型數(shù)據(jù)庫(kù),我禁不住想:有些東西被忽視了。關(guān)系型數(shù)據(jù)庫(kù)無(wú)處不在,而且種類(lèi)繁多,從小巧實(shí)用的 SQLite 到強(qiáng)大的 Teradata ...

    shusen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<