HTTP請(qǐng)求中POST與GET的區(qū)別

一、原理區(qū)別

一般我們?cè)跒g覽器輸入一個(gè)網(wǎng)址訪問網(wǎng)站都是GET請(qǐng)求;再FORM表單中跟畅,可以通過設(shè)置Method指定提交方式為GET或者POST提交方式,默認(rèn)為GET提交方式幢码。

HTTP定義了與服務(wù)器交互的不同方法,其中最基本的四種:GET,POST锭部,PUT,DELETE面褐,HEAD拌禾,其中GET和HEAD被稱為安全方法,因?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ì)修改信息摄杂。

根據(jù)HTTP規(guī)范,POST可能會(huì)修改服務(wù)器上的資源的請(qǐng)求循榆。比如CSDN的博客析恢,用戶提交一篇文章或者一個(gè)讀者提交評(píng)論是通過POST請(qǐng)求來實(shí)現(xiàn)的,因?yàn)樵偬峤晃恼禄蛘咴u(píng)論提交后資源(即某個(gè)頁面)不同了秧饮,或者說資源被修改了映挂,這些便是“不安全方法”。

二盗尸、表現(xiàn)形式區(qū)別

搞清楚了兩者的原理區(qū)別后柑船,我們來看一下在實(shí)際應(yīng)用中的區(qū)別。

首先泼各,我們先看一下HTTP請(qǐng)求的格式:

<method> <request-URL> <version>
<headers>

<entity-body>

在HTTP請(qǐng)求中鞍时,奇異行必須是一個(gè)請(qǐng)求行,包括請(qǐng)求方法扣蜻,請(qǐng)求URL逆巍,報(bào)文所用HTTP版本信息。緊接著是一個(gè)herders小節(jié)莽使,可以有零個(gè)或一個(gè)首部锐极,用來說明服務(wù)器要使用的附加信息。在首部之后就是一個(gè)空行芳肌,最后就是報(bào)文實(shí)體的主體部分灵再,包含一個(gè)由任意數(shù)據(jù)組成的數(shù)據(jù)塊肋层。但是并不是所有的報(bào)文都包含實(shí)體的主體部分。

GET請(qǐng)求實(shí)例:

GET http://weibo.com/signup/signup.php?inviteCode=2388493434
Host: weibo.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8

POST請(qǐng)求實(shí)例:

POST /inventory-check.cgi HTTP/1.1
Host: www.joes-hardware.com
Content-Type: text/plain
Content-length: 18

item=bandsaw 2647

接下來看看兩種請(qǐng)求方式的區(qū)別:

1翎迁、GET請(qǐng)求栋猖,請(qǐng)求的數(shù)據(jù)會(huì)附加在URL之后,以?分割URL和傳輸數(shù)據(jù)鸳兽,多個(gè)參數(shù)用&連接掂铐。URL的編碼格式采用的是ASCII編碼,而不是uniclde揍异,即是說所有的非ASCII字符都要編碼之后再傳輸全陨。

POST請(qǐng)求:POST請(qǐng)求會(huì)把請(qǐng)求的數(shù)據(jù)放置在HTTP請(qǐng)求包的包體中。上面的item=bandsaw就是實(shí)際的傳輸數(shù)據(jù)衷掷。

因此辱姨,GET請(qǐng)求的數(shù)據(jù)會(huì)暴露在地址欄中,而POST請(qǐng)求則不會(huì)戚嗅。

2雨涛、傳輸數(shù)據(jù)的大小

在HTTP規(guī)范中,沒有對(duì)URL的長度和傳輸?shù)臄?shù)據(jù)大小進(jìn)行限制懦胞。但是在實(shí)際開發(fā)過程中替久,對(duì)于GET,特定的瀏覽器和服務(wù)器對(duì)URL的長度有限制躏尉。因此蚯根,在使用GET請(qǐng)求時(shí),傳輸數(shù)據(jù)會(huì)受到URL長度的限制胀糜。

對(duì)于POST颅拦,由于不是URL傳值,理論上是不會(huì)受限制的教藻,但是實(shí)際上各個(gè)服務(wù)器會(huì)規(guī)定對(duì)POST提交數(shù)據(jù)大小進(jìn)行限制距帅,Apache、IIS都有各自的配置括堤。

3碌秸、安全性

POST的安全性比GET的高。這里的安全是指真正的安全悄窃,而不同于上面GET提到的安全方法中的安全哮肚,上面提到的安全僅僅是不修改服務(wù)器的數(shù)據(jù)。比如广匙,在進(jìn)行登錄操作允趟,通過GET請(qǐng)求,用戶名和密碼都會(huì)暴露再URL上鸦致,因?yàn)榈卿涰撁嬗锌赡鼙粸g覽器緩存以及其他人查看瀏覽器的歷史記錄的原因潮剪,此時(shí)的用戶名和密碼就很容易被他人拿到了涣楷。除此之外,GET請(qǐng)求提交的數(shù)據(jù)還可能會(huì)造成Cross-site request frogery攻擊

4抗碰、HTTP中的GET狮斗,POST,SOAP協(xié)議都是在HTTP上運(yùn)行的

三弧蝇、HTTP響應(yīng)

HTTP響應(yīng)報(bào)文的格式

<version> <status> <reason-phrase>
<headers>

<entity-body>

status碳褒,狀態(tài)碼描述了請(qǐng)求過程中發(fā)生的情況

reson-phrase 是數(shù)字狀態(tài)碼的可讀版本

常見的狀態(tài)碼以及含義如下:

200 OK 服務(wù)器成功處理請(qǐng)求

301/302 Moved Permanently(重定向)請(qǐng)求的URL已移走。響應(yīng)報(bào)文中應(yīng)該包含一個(gè)Location URL看疗,說明資源現(xiàn)在所處的位置

304 Not Modified(未修改) 客戶的緩存資源是最新的沙峻,要客戶端使用緩存內(nèi)容

404 Not Found 未找到資源

501 Internal Server Error 服務(wù)器遇到錯(cuò)誤,使其無法對(duì)請(qǐng)求提供服務(wù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末两芳,一起剝皮案震驚了整個(gè)濱河市摔寨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌怖辆,老刑警劉巖是复,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異竖螃,居然都是意外死亡淑廊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門特咆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蒋纬,“玉大人,你說我怎么就攤上這事坚弱。” “怎么了关摇?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵荒叶,是天一觀的道長。 經(jīng)常有香客問我输虱,道長些楣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任宪睹,我火速辦了婚禮愁茁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘亭病。我一直安慰自己鹅很,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布罪帖。 她就那樣靜靜地躺著促煮,像睡著了一般邮屁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上菠齿,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天佑吝,我揣著相機(jī)與錄音,去河邊找鬼绳匀。 笑死芋忿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疾棵。 我是一名探鬼主播戈钢,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼陋桂!你這毒婦竟也來了逆趣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤嗜历,失蹤者是張志新(化名)和其女友劉穎宣渗,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梨州,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痕囱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了暴匠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鞍恢。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖每窖,靈堂內(nèi)的尸體忽然破棺而出帮掉,到底是詐尸還是另有隱情,我是刑警寧澤窒典,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布蟆炊,位于F島的核電站,受9級(jí)特大地震影響瀑志,放射性物質(zhì)發(fā)生泄漏涩搓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一劈猪、第九天 我趴在偏房一處隱蔽的房頂上張望昧甘。 院中可真熱鬧,春花似錦战得、人聲如沸充边。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽痛黎。三九已至予弧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間湖饱,已是汗流浹背掖蛤。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留井厌,地道東北人蚓庭。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像仅仆,于是被迫代替她去往敵國和親器赞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容