post和get請(qǐng)求的區(qū)別 請(qǐng)求報(bào)文

1 Get和Post在面試中一般都會(huì)問到,一般的區(qū)別:

(1)post更安全(不會(huì)作為url的一部分丹弱,不會(huì)被緩存德撬、保存在服務(wù)器日志铲咨、以及瀏覽器瀏覽記錄中)
(2)post發(fā)送的數(shù)據(jù)更大(get有url長(zhǎng)度限制)
(3)post能發(fā)送更多的數(shù)據(jù)類型(get只能發(fā)送ASCII字符)
(4)post比get慢
(5)post用于修改和寫入數(shù)據(jù),get一般用于搜索排序和篩選之類的操作(淘寶砰逻,支付寶的搜索查詢都是get提交)鸣驱,目的是資源的獲取,讀取數(shù)據(jù)
(6)等等很多...
以上回答蝠咆,只是一些淺顯的回答。

2 HTTP報(bào)文

它是HTTP應(yīng)用程序之間發(fā)送的數(shù)據(jù)塊北滥。這些數(shù)據(jù)塊以一些文本形式的元信息開頭刚操,這些信息描述了報(bào)文的內(nèi)容及含義,后面跟著可選的數(shù)據(jù)部分再芋。這些報(bào)文都是在客戶端菊霜、服務(wù)器和代理之間流動(dòng)。

3 HTTP報(bào)文流動(dòng)方向

一次HTTP請(qǐng)求济赎,HTTP報(bào)文會(huì)從“客戶端”流到“代理”再流到“服務(wù)器”鉴逞,在服務(wù)器工作完成之后,報(bào)文又會(huì)從“服務(wù)器”流到“代理”再流到“客戶端”司训。

4 報(bào)文的語法

所有的HTTP報(bào)文都可以分為兩類构捡,請(qǐng)求報(bào)文和響應(yīng)報(bào)文。請(qǐng)求和響應(yīng)報(bào)文的基本報(bào)文結(jié)構(gòu)大致是相同的壳猜,只有起始行的語法有所不同勾徽。

4.1 請(qǐng)求報(bào)文

1> 一個(gè)HTTP請(qǐng)求報(bào)文由請(qǐng)求行(request line)、請(qǐng)求頭部(header)统扳、空行和請(qǐng)求數(shù)據(jù)4個(gè)部分組成喘帚。

大致結(jié)構(gòu)是這樣的:

<request-line>   //請(qǐng)求行

<headers>  //首部行

<blank line> //空行

<request-body> //請(qǐng)求體

舉個(gè)簡(jiǎn)單的列子:

POST /user HTTP/1.1      //請(qǐng)求行

Host: www.user.com

Content-Type: application/x-www-form-urlencoded

Connection: Keep-Alive

User-agent: Mozilla/5.0.      //以上是首部行

(此處必須有一空行)  //空行分割header和請(qǐng)求內(nèi)容 

name=world   請(qǐng)求體

2> 請(qǐng)求行

請(qǐng)求行由三部分組成:請(qǐng)求方法,請(qǐng)求URL(不包括域名)咒钟,HTTP協(xié)議版本吹由。

請(qǐng)求方法比較多:GET、POST朱嘴、HEAD倾鲫、PUT、DELETE腕够、OPTIONS级乍、TRACE、CONNECT帚湘。

最常用的是GET和POST玫荣。

3> 請(qǐng)求方法

3.1 GET

傳遞參數(shù)長(zhǎng)度受限制,因?yàn)閭鬟f的參數(shù)是直接表示在地址欄中大诸,而特定瀏覽器和服務(wù)器對(duì)url的長(zhǎng)度是有限制的捅厂。

因此贯卦,GET不適合用來傳遞私密數(shù)據(jù),也不適合拿來傳遞大量數(shù)據(jù)焙贷。

一般的HTTP請(qǐng)求大多都是GET撵割。

3.2 POST

POST把傳遞的數(shù)據(jù)封裝在HTTP請(qǐng)求數(shù)據(jù)中,以名稱/值的形式出現(xiàn)辙芍,可以傳輸大量數(shù)據(jù)啡彬,對(duì)數(shù)據(jù)量沒有限制,也不會(huì)顯示在URL中故硅。

表單的提交用的是POST庶灿。

3.3 HEAD

HEAD跟GET相似,不過服務(wù)端接收到HEAD請(qǐng)求時(shí)只返回響應(yīng)頭吃衅,不發(fā)送響應(yīng)內(nèi)容往踢。所以,如果只需要查看某個(gè)頁面的狀態(tài)時(shí)徘层,用HEAD更高效峻呕,因?yàn)槭∪チ藗鬏旐撁鎯?nèi)容的時(shí)間。

3.4 DELETE

刪除某一個(gè)資源趣效。

3.5 OPTIONS

用于獲取當(dāng)前URL所支持的方法瘦癌。若請(qǐng)求成功,會(huì)在HTTP頭中包含一個(gè)名為“Allow”的頭英支,值是所支持的方法佩憾,如“GET, POST”。

3.6 PUT

把一個(gè)資源存放在指定的位置上干花。

本質(zhì)上來講妄帘, PUT和POST極為相似,都是向服務(wù)器發(fā)送數(shù)據(jù)池凄,但它們之間有一個(gè)重要區(qū)別抡驼,PUT通常指定了資源的存放位置,而POST則沒有肿仑,POST的數(shù)據(jù)存放位置由服務(wù)器自己決定致盟。

3.7 TRACE

回顯服務(wù)器收到的請(qǐng)求,主要用于測(cè)試或診斷尤慰。

3.6 CONNECT

CONNECT方法是HTTP/1.1協(xié)議預(yù)留的馏锡,能夠?qū)⑦B接改為管道方式的代理服務(wù)器。通常用于SSL加密服務(wù)器的鏈接與非加密的HTTP代理服務(wù)器的通信伟端。

4> HTTP協(xié)議版本

4.1 HTTP/1.0

HTTP/1.0支持:GET杯道、POST、HEAD三種HTTP請(qǐng)求方法责蝠。

4.2 HTTP/1.1

HTTP/1.1是當(dāng)前正在使用的版本党巾。該版本默認(rèn)采用持久連接萎庭,并能很好地配合代理服務(wù)器工作齿拂。還支持以管道方式同時(shí)發(fā)送多個(gè)請(qǐng)求,以便降低線路負(fù)載署海,提高傳輸速度吗购。

HTTP/1.1新增了:OPTIONS巩搏、PUT、DELETE趾代、TRACE丰辣、CONNECT五種HTTP請(qǐng)求方法。

5> 請(qǐng)求頭部

5.1> 請(qǐng)求頭部由關(guān)鍵字/值對(duì)組成笙什,每行一對(duì)

1.User-Agent : 產(chǎn)生請(qǐng)求的瀏覽器類型飘哨。
2.Accept : 客戶端希望接受的數(shù)據(jù)類型,比如 Accept:text/xml(application/json)表示希望接受到的是xml(json)類型琐凭。
3.Content-Type:發(fā)送端發(fā)送的實(shí)體數(shù)據(jù)的數(shù)據(jù)類型芽隆。
比如,Content-Type:text/html(application/json)表示發(fā)送的是html類型统屈。
4.Host : 請(qǐng)求的主機(jī)名胚吁,允許多個(gè)域名同處一個(gè)IP地址,即虛擬主機(jī)愁憔。

5.2> 常見的Content-Type

6> 空行

請(qǐng)求頭之后是一個(gè)空行腕扶,通知服務(wù)器以下不再有請(qǐng)求頭

7> 請(qǐng)求體

GET沒有請(qǐng)求數(shù)據(jù),POST有吨掌。

與請(qǐng)求數(shù)據(jù)相關(guān)的最常使用的請(qǐng)求頭是 Content-Type 和 Content-Length 半抱。

4.2 響應(yīng)報(bào)文

1> HTTP響應(yīng)報(bào)文和請(qǐng)求報(bào)文的結(jié)構(gòu)差不多,也是由四個(gè)部分組成

<status-line>   //狀態(tài)行

<headers>   //消息報(bào)頭

<blank line>   //空行

<response-body>    //響應(yīng)體

2> 狀態(tài)行

狀態(tài)行也由三部分組成:服務(wù)器HTTP協(xié)議版本膜宋,響應(yīng)狀態(tài)碼窿侈,狀態(tài)碼的文本描述

格式:HTTP-Version Status-Code Reason-Phrase CRLF

比如:HTTP/1.1 200 OK

狀態(tài)碼:由3位數(shù)字組成,第一個(gè)數(shù)字定義了響應(yīng)的類別
1.1xx:指示信息秋茫,表示請(qǐng)求已接收史简,繼續(xù)處理。

2.2xx:成功学辱,表示請(qǐng)求已被成功接受乘瓤,處理环形。

200 OK:客戶端請(qǐng)求成功
204 No Content:無內(nèi)容。服務(wù)器成功處理衙傀,但未返回內(nèi)容抬吟。一般用在只是客戶端向服務(wù)器發(fā)送信息,而服務(wù)器不用向客戶端返回什么信息的情況统抬。不會(huì)刷新頁面火本。
206 Partial Content:服務(wù)器已經(jīng)完成了部分GET請(qǐng)求(客戶端進(jìn)行了范圍請(qǐng)求)。響應(yīng)報(bào)文中包含Content-Range指定范圍的實(shí)體內(nèi)容

3.3xx:重定向

301 Moved Permanently:永久重定向聪建,表示請(qǐng)求的資源已經(jīng)永久的搬到了其他位置钙畔。
302 Found:臨時(shí)重定向,表示請(qǐng)求的資源臨時(shí)搬到了其他位置
303 See Other:臨時(shí)重定向金麸,應(yīng)使用GET定向獲取請(qǐng)求資源擎析。303功能與302一樣,區(qū)別只是303明確客戶端應(yīng)該使用GET訪問
307 Temporary Redirect:臨時(shí)重定向挥下,和302有著相同含義揍魂。POST不會(huì)變成GET
304 Not Modified:表示客戶端發(fā)送附帶條件的請(qǐng)求(GET方法請(qǐng)求報(bào)文中的IF…)時(shí),條件不滿足棚瘟。返回304時(shí)现斋,不包含任何響應(yīng)主體。雖然304被劃分在3XX偎蘸,但和重定向一毛錢關(guān)系都沒有

4.4xx:客戶端錯(cuò)誤

400 Bad Request:客戶端請(qǐng)求有語法錯(cuò)誤迷雪,服務(wù)器無法理解。
401 Unauthorized:請(qǐng)求未經(jīng)授權(quán)蔗包,這個(gè)狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用调限。
403 Forbidden:服務(wù)器收到請(qǐng)求误澳,但是拒絕提供服務(wù)
404 Not Found:請(qǐng)求資源不存在忆谓。比如,輸入了錯(cuò)誤的url
415 Unsupported media type:不支持的媒體類型

5.5xx:服務(wù)器端錯(cuò)誤哨免,服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求

500 Internal Server Error:服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤琢唾。
503 Server Unavailable:服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求,一段時(shí)間后可能恢復(fù)正常懒熙。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末工扎,一起剝皮案震驚了整個(gè)濱河市肢娘,隨后出現(xiàn)的幾起案子舆驶,更是在濱河造成了極大的恐慌贞远,老刑警劉巖蓝仲,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袱结,死亡現(xiàn)場(chǎng)離奇詭異垢夹,居然都是意外死亡维费,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門而晒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來倡怎,“玉大人监署,你說我怎么就攤上這事∑茱酰” “怎么了累魔?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵垦写,是天一觀的道長(zhǎng)彰触。 經(jīng)常有香客問我况毅,道長(zhǎng),這世上最難降的妖魔是什么么鹤? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任蒸甜,我火速辦了婚禮柠新,結(jié)果婚禮上辉巡,老公的妹妹穿的比我還像新娘。我一直安慰自己憔恳,他們只是感情好痢甘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布塞栅。 她就那樣靜靜地躺著腔丧,像睡著了一般愉粤。 火紅的嫁衣襯著肌膚如雪拿撩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天影暴,我揣著相機(jī)與錄音探赫,去河邊找鬼。 笑死伦吠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的搁嗓。 我是一名探鬼主播腺逛,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼衡怀,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼狈癞!你這毒婦竟也來了蝶桶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎厌小,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體讨韭,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡透硝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年埋泵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了罪治。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雁社,死狀恐怖歧胁,靈堂內(nèi)的尸體忽然破棺而出厉碟,到底是詐尸還是另有隱情,我是刑警寧澤崭参,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布何暮,位于F島的核電站铐殃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏坏逢。R本人自食惡果不足惜赘被,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一民假、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧事秀,春花似錦彤断、人聲如沸瓦糟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至先嬉,卻和暖如春楚堤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背衅胀。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來泰國打工滚躯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嘿歌,地道東北人宙帝。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓息裸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蚁廓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

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