HTTP請(qǐng)求報(bào)文和響應(yīng)報(bào)文

文章作者:Tyan
博客:noahsnail.com | CSDN | 簡(jiǎn)書(shū)

1. HTTP報(bào)文

HTTP報(bào)文是由一行一行的簡(jiǎn)單字符串組成的。HTTP報(bào)文都是純文本营罢,不是二進(jìn)制代碼,所以人們可以很方便地對(duì)其進(jìn)行讀寫(xiě)肪凛。下圖是一個(gè)例子:

HTTP報(bào)文示例

從Web客戶端發(fā)往Web服務(wù)器的HTTP報(bào)文稱為請(qǐng)求報(bào)文(request message)劳景。從服務(wù)器發(fā)往客戶端的報(bào)文稱為響應(yīng)報(bào)文(response message),此外沒(méi)有其他類型的HTTP報(bào)文配紫。HTTP請(qǐng)求和響應(yīng)報(bào)文的格式很類似。

HTTP 報(bào)文包括以下三個(gè)部分:

  • 起始行
    報(bào)文的第一行就是起始行,在請(qǐng)求報(bào)文中用來(lái)說(shuō)明要做些什么,在響應(yīng)報(bào)文中說(shuō)明出現(xiàn)了什么情況趋艘。

  • 首部字段
    起始行后面有零個(gè)或多個(gè)首部字段疲恢。每個(gè)首部字段都包含一個(gè)名字和一個(gè)值,為了便于解析,兩者之間用冒號(hào)(:)來(lái)分隔凶朗。首部以一個(gè)空行結(jié)束瓷胧。添加一個(gè)首部字段和添加新行一樣簡(jiǎn)單。

  • 主體
    空行之后就是可選的報(bào)文主體了,其中包含了所有類型的數(shù)據(jù)棚愤。請(qǐng)求主體中包括 了要發(fā)送給 Web 服務(wù)器的數(shù)據(jù);響應(yīng)主體中裝載了要返回給客戶端的數(shù)據(jù)搓萧。起始行和首部都是文本形式且都是結(jié)構(gòu)化的,而主體則不同,主體中可以包含任意 的二進(jìn)制數(shù)據(jù)(比如圖片、視頻宛畦、音軌瘸洛、軟件程序)。當(dāng)然,主體中也可以包含 文本次和。

2. HTTP請(qǐng)求報(bào)文

GET / HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Cookie: BAIDUID=4082549DEE5E64678FC46642E185D98C:FG=1; BIDUPSID=4082549DEE5E64678FC46642E185D98C; PSTM=1472215668; MCITY=-%3A; BDSFRCVID=pSFsJeCCxG3C4A5iySIze8tzxQmzvLxREDct3J; H_BDCLCKID_SF=tR38LRu8KJjEe-Kk-PnVeUFLQlbZKxJmMgkeWlbMQnTR85CGXUQVWx4_Qb6gXU-L5nT9bDOFfDL2bKKmjTL3K4LOMq5-5b0X-K5L3JD8bnjoHRjvq4bohjPy5G7eBtQm05bxohOIHRoE8M0m2ROkMtutKJjQW-nQ5HbbhCLbWDF5MIDGj50WenLHMfnXetJQ2C7WsJceHJOoDDvx0Uj5y4LdLp7xJMtJ0RT0XxOYMJKWf-c90tc05xAb04oR5b0eWJQ2QJ8BtCtKhD3P; pgv_pvi=7232093184; pgv_si=s9982430208; BDRCVFR[IzI_eUGSZP3]=mbxnW11j9Dfmh7GuZR8mvqV; BD_CK_SAM=1; PSINO=5; BD_HOME=0; H_PS_PSSID=1421_17946_21125_18559_21455_21419_21394_21378_21191_21398; BD_UPN=123253; BD_LAST_QID=17716714193052416912

解釋:

  • GET / HTTP/1.1反肋,請(qǐng)求起始行

  • GET,請(qǐng)求方法

  • /踏施,請(qǐng)求URL石蔗,命名了所請(qǐng)求資源,或者URL路徑組件的完整URL。如果直接與服務(wù)器進(jìn)行對(duì)話,只要URL的路徑組件是資源的絕對(duì)路徑,通常就不會(huì)有什么問(wèn)題——服務(wù)器可以假定自己是URL的主機(jī)/端口畅形。

  • HTTP/1.1养距,請(qǐng)求采用的協(xié)議及版本號(hào)

  • Host,請(qǐng)求的服務(wù)器

  • Connection日熬,連接方式

  • Upgrade-Insecure-Requests棍厌,

  • User-Agent,將發(fā)起請(qǐng)求的應(yīng)用程序名稱告知服務(wù)器

  • Accept竖席,請(qǐng)求首部耘纱,是請(qǐng)求報(bào)文特有的。它們?yōu)榉?wù)器提供了一些額外信息,比如客戶端希望接收什么類型的數(shù)據(jù)毕荐。例子中接收html束析,xhtml,xml等數(shù)據(jù)东跪。

  • Accept-Encoding畸陡,告訴服務(wù)器能夠發(fā)送哪些編碼方式

  • Accept-Language鹰溜,告訴服務(wù)器能夠發(fā)送哪些語(yǔ)言

  • Cookie,Cookie信息丁恭,客戶端用它向服務(wù)器傳送一個(gè)令牌——它并不是真正的安全首部,但確實(shí)隱含了安全功能

3. HTTP響應(yīng)報(bào)文

$ curl -I www.baidu.com
HTTP/1.1 200 OK
Server: bfe/1.0.8.18
Date: Thu, 03 Nov 2016 08:30:43 GMT
Content-Type: text/html
Content-Length: 277
Last-Modified: Mon, 13 Jun 2016 02:50:03 GMT
Connection: Keep-Alive
ETag: "575e1f5b-115"
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Pragma: no-cache
Accept-Ranges: bytes

解釋:

  • HTTP/1.1 200 OK曹动,響應(yīng)狀態(tài)行

  • HTTP/1.1,訪問(wèn)采用的協(xié)議為HTTP牲览,版本為1.1

  • 200墓陈,HTTP狀態(tài)碼,表示文檔正確返回

  • OK第献,一個(gè)描述性的原因短語(yǔ)

  • Server贡必,服務(wù)器應(yīng)用程序軟件的名稱和版本

  • Date,服務(wù)器產(chǎn)生響應(yīng)的日期

  • Content-Type庸毫,實(shí)體中所承載對(duì)象的類型仔拟,例子中響應(yīng)實(shí)體的主體是一個(gè)html文本。

  • Content-Length飒赃,所傳送實(shí)體主體的長(zhǎng)度或大小利花,例子中響應(yīng)實(shí)體的主體包含了277字節(jié)的數(shù)據(jù)

  • Last-Modified,資源的最后修改日期時(shí)間

  • Connection载佳,連接方式炒事,close或keep-alive

  • ETag,資源的匹配信息

  • Cache-Control蔫慧,控制緩存的行為

  • Pragma挠乳,報(bào)文指令

  • Accept-Ranges金句,是否接受字節(jié)范圍請(qǐng)求

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末呐萌,一起剝皮案震驚了整個(gè)濱河市畏吓,隨后出現(xiàn)的幾起案子吩跋,更是在濱河造成了極大的恐慌涕蚤,老刑警劉巖穆碎,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玻粪,死亡現(xiàn)場(chǎng)離奇詭異窜管,居然都是意外死亡橄仍,警方通過(guò)查閱死者的電腦和手機(jī)韧涨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)侮繁,“玉大人虑粥,你說(shuō)我怎么就攤上這事∠芰ǎ” “怎么了娩贷?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)锁孟。 經(jīng)常有香客問(wèn)我彬祖,道長(zhǎng)茁瘦,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任储笑,我火速辦了婚禮甜熔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘突倍。我一直安慰自己腔稀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布羽历。 她就那樣靜靜地躺著焊虏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秕磷。 梳的紋絲不亂的頭發(fā)上诵闭,一...
    開(kāi)封第一講書(shū)人閱讀 51,155評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音跳夭,去河邊找鬼涂圆。 笑死们镜,一個(gè)胖子當(dāng)著我的面吹牛币叹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播模狭,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼颈抚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了嚼鹉?” 一聲冷哼從身側(cè)響起贩汉,我...
    開(kāi)封第一講書(shū)人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锚赤,沒(méi)想到半個(gè)月后匹舞,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡线脚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年赐稽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浑侥。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡姊舵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寓落,到底是詐尸還是另有隱情括丁,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布伶选,位于F島的核電站史飞,受9級(jí)特大地震影響尖昏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜构资,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一会宪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚯窥,春花似錦掸鹅、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至荷鼠,卻和暖如春句携,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背允乐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工矮嫉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人牍疏。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓蠢笋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親鳞陨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子昨寞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

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