HTTP 結(jié)構(gòu)历造、狀態(tài)碼、首部簡(jiǎn)記

HTTP

報(bào)文

HTTP報(bào)文包括3部分:

  • 起始行
  • 首部字段:名字和值以:區(qū)分勿锅,每個(gè)首部字段以\r\n換行分割帕膜。首部以一個(gè)空行表示結(jié)束。
  • 主體
請(qǐng)求報(bào)文.png

請(qǐng)求報(bào)文起始行結(jié)構(gòu):

  • 方法(method): GET是這個(gè)請(qǐng)求的方法溢十。
  • 請(qǐng)求URL(request-URL): 這個(gè)request所請(qǐng)求的資源垮刹。
  • 版本(version): 請(qǐng)求報(bào)文所用的HTTP版本,格式為HTTP/<major>.<minor>张弛。
響應(yīng)報(bào)文.png

響應(yīng)報(bào)文起始行結(jié)構(gòu):

  • 版本(version):響應(yīng)報(bào)文所用的HTTP版本荒典,服務(wù)器應(yīng)該返回相同的與請(qǐng)求相同的HTTP版本。
  • 狀態(tài)碼(status-code): 這三位數(shù)描述的是請(qǐng)求過(guò)程的情況吞鸭。
  • 原因短語(yǔ)(reason-phrase): 狀態(tài)碼的可讀版本寺董。

方法

GET

GET方法用于請(qǐng)求服務(wù)器發(fā)送某個(gè)資源。HTTP/1.1 要求服務(wù)器實(shí)現(xiàn)此方法刻剥。

HEAD

HEAD方法與GET方法類(lèi)似遮咖,但服務(wù)器在響應(yīng)只返回首部,不會(huì)返回實(shí)體的主體部分造虏。這允許了客戶(hù)端在未獲取實(shí)際資源的情況下御吞,對(duì)資源的首部進(jìn)行檢查。使用HEAD漓藕,可以:

  • 再不獲取資源的情況下了解資源的情況陶珠;
  • 通過(guò)查看響應(yīng)的狀態(tài)碼,檢查某個(gè)對(duì)象是否存在享钞;
  • 通過(guò)查看首部揍诽,測(cè)試資源是否被修改了;

服務(wù)器開(kāi)發(fā)者必須確保返回的首部與GET請(qǐng)求所返回的首部完全相同栗竖。HTTTP/1.1 要求服務(wù)器實(shí)現(xiàn)此方法暑脆。

PUT

與GET從服務(wù)器讀取文檔相反,PUT方法向服務(wù)器寫(xiě)入文檔狐肢。PUT方法的語(yǔ)義就是讓服務(wù)器用請(qǐng)求的主體部分創(chuàng)建一個(gè)由所請(qǐng)求的URL命名的新文檔添吗,如果,如果那個(gè)URL已經(jīng)存在处坪,就用這個(gè)主體替換它根资。

POST

POST方法是用來(lái)向服務(wù)器輸入數(shù)據(jù)的,通常用它來(lái)支持HTML的表單同窘。

TRACE

TRACE請(qǐng)求會(huì)在目的服務(wù)器發(fā)起一個(gè)“環(huán)回”診斷玄帕。行程最后一站的服務(wù)器回彈回一條TRACE響應(yīng),并在響應(yīng)的主圖中攜帶它受到的原始請(qǐng)求報(bào)文想邦。這樣客戶(hù)端就可以查看在所有中間HTTP應(yīng)用程序組成的請(qǐng)求/響應(yīng)鏈上裤纹,原始報(bào)文是否以及如果被毀壞活著修改。TRACE主要用于診斷丧没。

缺點(diǎn):TRACE假定中間應(yīng)用程序?qū)Ω鞣N不同類(lèi)型的請(qǐng)求(GET鹰椒,HEAD,POST等)的處理是相同的呕童,但是很多HTTP應(yīng)用程序會(huì)根據(jù)方法的不同做出不同的處理漆际。TRACE并不提供區(qū)分這些方法的機(jī)制。

TRACE請(qǐng)求中不能帶有實(shí)體的主體部分夺饲。TRACE響應(yīng)的實(shí)體主體部分包含了響應(yīng)服務(wù)器收到的請(qǐng)求的精確副本奸汇。

OPTIONS

OPTIONS方法請(qǐng)求Web服務(wù)器告知其支持的各種功能。

DELETE

DELETE方法請(qǐng)求服務(wù)器刪除請(qǐng)求URL所指定的資源往声。

其他擴(kuò)展方法

擴(kuò)展方法是指沒(méi)有在HTTP/1.1規(guī)范中定義的方法擂找。

常見(jiàn)的擴(kuò)展方法

方法 描述
LOCK 允許用戶(hù)“鎖定”資源
MKCOL 允許用戶(hù)創(chuàng)建資源
COPY 便于在服務(wù)器上復(fù)制資源
MOVE 在服務(wù)器上移動(dòng)資源

狀態(tài)碼

100 ~ 199 信息狀態(tài)碼(HTTP/1.1中引入)

狀態(tài)碼 原因短語(yǔ) 含義
100 Continue 說(shuō)明收到請(qǐng)求的初始部分,請(qǐng)客戶(hù)端繼續(xù)浩销。發(fā)送了這個(gè)狀態(tài)碼之后贯涎,服務(wù)器在收到請(qǐng)求之后必須進(jìn)行響應(yīng)。
101 Switching Protocols 說(shuō)明服務(wù)器正在根據(jù)客戶(hù)端的指定慢洋,將協(xié)議切換到Update首部所列的協(xié)議塘雳。

100 Continue的目的是對(duì)這樣的情況進(jìn)行優(yōu)化:HTTP客戶(hù)端應(yīng)用程序有一個(gè)實(shí)體的主體部分要發(fā)送給服務(wù)器,但希望在發(fā)送之前查看一下服務(wù)器是否會(huì)接受這個(gè)實(shí)體且警。

  • 客戶(hù)端與 100 Continue

如果客戶(hù)端在向服務(wù)器發(fā)送一個(gè)實(shí)體粉捻,并且愿意在發(fā)送實(shí)體之前等待100 Continue響應(yīng),那么斑芜,客戶(hù)端就要發(fā)送一個(gè)攜帶了值為100 Continue的 Expect 請(qǐng)求首部肩刃。如果客戶(hù)端沒(méi)有發(fā)送實(shí)體,就不應(yīng)該發(fā)送100 Continue Expect 首部杏头,因?yàn)檫@樣會(huì)使服務(wù)器誤以為客戶(hù)端要發(fā)送一個(gè)實(shí)體盈包。

發(fā)送了100 Continue Expect 首部的客戶(hù)端,不應(yīng)該永遠(yuǎn)在等待服務(wù)器發(fā)送100 Continue響應(yīng)醇王。過(guò)時(shí)一定時(shí)間后呢燥,客戶(hù)端應(yīng)該直接將實(shí)體發(fā)送吹起。實(shí)際上寓娩,客戶(hù)端程序也應(yīng)該做好應(yīng)對(duì)非預(yù)期100 Continue響應(yīng)的準(zhǔn)備叛氨。

  • 服務(wù)器與 100 Continue

如果服務(wù)器收到一條帶有100 Continue Expect 首部的請(qǐng)求呼渣,它會(huì)用100 Continue響應(yīng)或者一條錯(cuò)誤代碼來(lái)進(jìn)行響應(yīng)。

如果服務(wù)器在有機(jī)會(huì)發(fā)送100 Continue響應(yīng)之前收到了部分(或者全部)的實(shí)體寞埠,就說(shuō)明客戶(hù)端已經(jīng)決定繼續(xù)發(fā)送數(shù)據(jù)了屁置,這樣,服務(wù)器就不需要發(fā)送這個(gè)100 Continue狀態(tài)碼了仁连。但服務(wù)器讀完請(qǐng)求后蓝角,還會(huì)應(yīng)該為請(qǐng)求發(fā)送一個(gè)最終狀態(tài)碼(它可以跳過(guò)100 Continue狀態(tài))。

最后饭冬,如果服務(wù)器受到了100 Continue Expect 首部的請(qǐng)求使鹅,且在它決定讀取實(shí)體的主體部分之前結(jié)束請(qǐng)求,就不應(yīng)該僅僅是發(fā)送一個(gè)響應(yīng)并關(guān)閉連接昌抠,因?yàn)檫@個(gè)會(huì)妨礙客戶(hù)端接受響應(yīng)患朱。

  • 代理與 100 Continue

如果代理從客戶(hù)端收到一個(gè)帶有100 Continue Expect 首部的請(qǐng)求,它需要做幾件事炊苫。如果代理知道下一跳服務(wù)器是HTTP/1.1兼容的麦乞,或者并不知道下一跳服務(wù)器與哪個(gè)版本兼容,它都應(yīng)該將 Expect 首部放在請(qǐng)求中向下轉(zhuǎn)發(fā)劝评。如果它知道下一跳服務(wù)器只能與HTTP/1.1之前的版本兼容姐直,就應(yīng)該以417 Expectation Failed錯(cuò)誤進(jìn)行響應(yīng)(另一種合理方法是,向客戶(hù)端想返回100 Continue蒋畜,在向服務(wù)器轉(zhuǎn)發(fā)請(qǐng)求時(shí)声畏,刪掉 Expect 的首部)。

200 ~ 299 成功狀態(tài)碼

狀態(tài)碼 原因短語(yǔ) 含義
200 OK 請(qǐng)求沒(méi)問(wèn)題姻成,實(shí)體的主體部分包含了所有的請(qǐng)求資源
201 Created 用于創(chuàng)建服務(wù)器對(duì)象的請(qǐng)求(比如插龄,PUT)。響應(yīng)的實(shí)體主體部分中應(yīng)該包含各種飲用了已創(chuàng)建的資源的URL科展,Location 首部包含的則是最具體的引用均牢。 服務(wù)器必須在發(fā)送這個(gè)狀態(tài)碼之前創(chuàng)建好對(duì)象。
202 Accepted 請(qǐng)求已被接受才睹,但服務(wù)器還未對(duì)其執(zhí)行任何動(dòng)作徘跪,不能保證服務(wù)器會(huì)完成這個(gè)請(qǐng)求;這只是意味著接受請(qǐng)求時(shí)琅攘,它看起來(lái)是有效的垮庐。 服務(wù)器應(yīng)該在實(shí)體的主體部分包含對(duì)請(qǐng)求狀態(tài)的描述,或許還應(yīng)該有對(duì)請(qǐng)求完成時(shí)間的估計(jì)(或者包含一個(gè)指針坞琴,只想可以獲取此信息的位置)哨查。
203 Non-Authoritative Infomation 實(shí)體首部包含的信息不是來(lái)自源端服務(wù)器,而是來(lái)自資源的一份副本剧辐,如果中間節(jié)點(diǎn)上有一份資源副本寒亥,但無(wú)法或者沒(méi)有對(duì)它所發(fā)送的與資源有關(guān)的元信息(首部)進(jìn)行驗(yàn)證邮府,就會(huì)出現(xiàn)這種情況。這個(gè)狀態(tài)碼不是非用不可溉奕,如果實(shí)體首部來(lái)自源端服務(wù)器挟纱,響應(yīng)為200狀態(tài)的應(yīng)用程序就可以將其作為一種可選項(xiàng)使用。
204 No Content 響應(yīng)報(bào)文中包含若干首部和一個(gè)狀態(tài)行腐宋,但沒(méi)有實(shí)體的主體部分。主要用于在瀏覽器不轉(zhuǎn)為顯示新文檔的情況下檀轨,對(duì)其進(jìn)行更新(比如刷新一個(gè)表單頁(yè)面)胸竞。
205 Reset Content 另一個(gè)主要用于瀏覽器的狀態(tài)碼,負(fù)責(zé)告知瀏覽器清楚當(dāng)前頁(yè)面中的所有HTML表單元素参萄。
206 Partial Content 成功執(zhí)行一個(gè)部分或 Range(范圍) 請(qǐng)求卫枝。206響應(yīng)中必須包含Content-Range、Date以及ETag或Content-Location首部讹挎。

300 ~ 399 重定向狀態(tài)碼

狀態(tài)碼 原因短語(yǔ) 含義
300 Multiple Choices 客戶(hù)端請(qǐng)求一個(gè)實(shí)際指向多個(gè)資源的 URL 時(shí)會(huì)返回這個(gè)狀態(tài)碼校赤,比如服務(wù)器上有某個(gè)HTML文檔的英語(yǔ)和法語(yǔ)版本。返回這個(gè)代碼時(shí)會(huì)帶著一個(gè)選項(xiàng)列表筒溃;這樣用戶(hù)就可以選擇他希望使用的那一項(xiàng)了马篮。有多個(gè)版本可用時(shí),客戶(hù)端需要溝通解決怜奖。服務(wù)器可以在 Location 首部包含首選 URL浑测。
301 Moved Permanently 在請(qǐng)求的 URL 已被移除時(shí)使用。響應(yīng)的 Location 首部中應(yīng)該包含資源現(xiàn)在所處的URL歪玲。
302 Found 與 301 狀態(tài)碼類(lèi)似迁央;但是,客戶(hù)端應(yīng)該使用 Location 首部給出的 URL 來(lái)臨時(shí)定位資源滥崩。將來(lái)的請(qǐng)求仍應(yīng)該使用老的URL岖圈。
303 See Other 告知客戶(hù)端應(yīng)該用另一個(gè) URL 來(lái)獲取資源。新的 URL 位于響應(yīng)報(bào)文的 Location 首部钙皮。其主要目的是允許 POST 請(qǐng)求的響應(yīng)將客戶(hù)端定向到某個(gè)資源上去蜂科。
304 Mot Modified 客戶(hù)端可以通過(guò)所包含的請(qǐng)求首部潦嘶,使其請(qǐng)求變成有條件的碳胳。如果客戶(hù)端發(fā)起一個(gè)條件 GET 請(qǐng)求拢操,而最近資源未被修改的話优妙,就可以用這個(gè)狀態(tài)碼來(lái)說(shuō)明資源未被修改炎码。帶有這個(gè)狀態(tài)碼的響應(yīng)不應(yīng)該包含實(shí)體的主體部分揭斧。
305 Use Proxy 用來(lái)說(shuō)明必須通過(guò)一個(gè)代理來(lái)訪問(wèn)資源刚夺;代理的位置由 Location 首部給出钥屈。很重要一點(diǎn)是屹蚊,客戶(hù)端是相對(duì)某個(gè)特定資源來(lái)解析這條響應(yīng)的厕氨,不能假定所有請(qǐng)求进每,甚至所有對(duì)持有所請(qǐng)求資源的服務(wù)器的請(qǐng)求都通過(guò)這個(gè)代理進(jìn)行。如果客戶(hù)端錯(cuò)誤地讓代理介入了某條請(qǐng)求命斧,可能會(huì)引發(fā)破壞性行為田晚,會(huì)造成安全漏洞。
306 (未被使用) 當(dāng)前未使用国葬。
307 Temporary Redirect 與301狀態(tài)碼類(lèi)似贤徒;但客戶(hù)端應(yīng)該使用 Location 首部給出的 URL 來(lái)臨時(shí)定位資源。將來(lái)的請(qǐng)求應(yīng)該使用老的 URL汇四。

302接奈,303,307之間存在交叉通孽,主要來(lái)之于 HTTP/1.0 和 HTTP/1.1 的處理方式不同序宦。

當(dāng) HTTP/1.0 客戶(hù)端發(fā)起一個(gè) POST 請(qǐng)求,并在響應(yīng)中收到了 302 重定向狀態(tài)碼時(shí)背苦,它會(huì)接受 Location 首部的重定向 URL互捌,并向那個(gè) URL 發(fā)起一個(gè) GET 請(qǐng)求(而不會(huì)像原始請(qǐng)求中那樣發(fā)起一個(gè) POST 請(qǐng)求)。

而在 HTTP/1.1 中行剂,HTTP/1.1 規(guī)范使用 303 狀態(tài)碼來(lái)實(shí)現(xiàn)同樣的行為(服務(wù)器發(fā)送 303 狀態(tài)碼來(lái)重定向客戶(hù)端的 POST 請(qǐng)求秕噪,在它后面跟上一個(gè) GET 請(qǐng)求)。

為了避開(kāi)這個(gè)問(wèn)題厚宰,HTTP/1.1 規(guī)范指出巢价,對(duì)于 HTTP/1.1 客戶(hù)端,用 307 狀態(tài)碼取代302狀態(tài)碼來(lái)進(jìn)行重定向固阁。這樣服務(wù)器就可以將 302 狀態(tài)碼保留起來(lái)壤躲,為HTTP/1.0 客戶(hù)端使用。

400 ~ 499 客戶(hù)端錯(cuò)誤代碼

狀態(tài)碼 原因短語(yǔ) 含義
400 Bad Request 用于告知客戶(hù)端它發(fā)送了一個(gè)錯(cuò)誤的請(qǐng)求
401 Unauthorized 與適當(dāng)?shù)氖撞恳煌祷乇溉迹谶@些首部中請(qǐng)求客戶(hù)端在獲取對(duì)資源的訪問(wèn)權(quán)之前碉克,對(duì)自己進(jìn)行認(rèn)證。
402 Payment Required 保留狀態(tài)碼
403 Forbidden 用于說(shuō)明請(qǐng)求被服務(wù)器拒絕了并齐。如果服務(wù)器想說(shuō)明為什么拒絕請(qǐng)求漏麦,可以包含實(shí)體的主體部分來(lái)對(duì)原因進(jìn)行描述。但這個(gè)狀態(tài)碼通常是用在服務(wù)器不想說(shuō)明拒絕原因的時(shí)候使用况褪。
404 Not Found 用于說(shuō)明服務(wù)器無(wú)法找到所請(qǐng)求 URL撕贞。通常會(huì)包含一個(gè)實(shí)體,以便客戶(hù)端應(yīng)用程序現(xiàn)實(shí)給用戶(hù)看测垛。
405 Method Not Allowed 發(fā)起請(qǐng)求中帶有所請(qǐng)求的 URL 不支持的方法時(shí)捏膨,使用此狀態(tài)碼。應(yīng)該在響應(yīng)中包含 Allow 首部,以告知客戶(hù)端對(duì)所請(qǐng)求的資源可以使用哪些方法号涯。
406 Not Acceptable 客戶(hù)端可以指定參數(shù)哦來(lái)說(shuō)明它們?cè)敢饨邮帐裁搭?lèi)型的實(shí)體目胡。服務(wù)器沒(méi)有與客戶(hù)端可以接受的 URL 相匹配的資料時(shí),使用此代碼链快。通常誉己,服務(wù)器會(huì)包含一些首部,以便客戶(hù)端弄清楚為什么請(qǐng)求無(wú)法滿(mǎn)足域蜗。
407 Proxy Authentication Required 與 401 狀態(tài)碼類(lèi)似巨双,但用于要求對(duì)資源進(jìn)行認(rèn)證的代理服務(wù)器。
408 Request Timeout 如果客戶(hù)端完成請(qǐng)求所花的時(shí)間太長(zhǎng)霉祸,服務(wù)器可能回送此狀態(tài)碼筑累,并關(guān)閉連接。超時(shí)時(shí)長(zhǎng)隨服務(wù)器的不同有所不同脉执,但通常對(duì)所有的合法請(qǐng)求來(lái)說(shuō),都是夠長(zhǎng)的戒劫。
409 Conflict 用于說(shuō)明請(qǐng)求可能在資源上引發(fā)的一些沖突半夷。服務(wù)器擔(dān)心請(qǐng)求會(huì)引發(fā)沖突時(shí),可以發(fā)送此狀態(tài)碼迅细。響應(yīng)中應(yīng)該包含描述沖突的主體巫橄。
410 Gone 與 404 類(lèi)似,只是服務(wù)器曾經(jīng)擁有過(guò)此資源茵典。主要用于 Web 站點(diǎn)的維護(hù)湘换,這樣服務(wù)器的管理者就可以在資源被移除的情況下通知客戶(hù)端。
411 Length Required 服務(wù)器要求在請(qǐng)求報(bào)文中包含 Content-Length 首部使用统阿。
412 Precondition Failed 客戶(hù)端發(fā)起了條件請(qǐng)求彩倚,且其中一個(gè)條件失敗了的時(shí)候使用》銎剑客戶(hù)端包含了 Expect 首部發(fā)起的就是條件請(qǐng)求帆离。
413 Request Entity Too Large 客戶(hù)端發(fā)送的實(shí)體主體部分比服務(wù)器能夠或者希望處理的要大時(shí),使用此狀態(tài)碼结澄。
414 Request URI Too Long 客戶(hù)端發(fā)送請(qǐng)求中的請(qǐng)求 URL 比服務(wù)器能夠或者希望處理的要長(zhǎng)時(shí)哥谷,使用此狀態(tài)碼。
415 Unsupported Media Type 服務(wù)器無(wú)法理解或者無(wú)法支持客戶(hù)端所發(fā)實(shí)體的內(nèi)容類(lèi)型時(shí)麻献,使用此狀態(tài)碼们妥。
416 Requested Range Not Satisfiable 請(qǐng)求報(bào)文所請(qǐng)求的是指定資源的某個(gè)范圍,而此范圍無(wú)效或者無(wú)法滿(mǎn)足時(shí)勉吻,使用此狀態(tài)监婶。
417 Expectation Failed 請(qǐng)求的 Expect 請(qǐng)求首部包含了一個(gè)期望,但服務(wù)器無(wú)法滿(mǎn)足此期望時(shí)齿桃,使用此代碼压储。如果代理或者其他中間應(yīng)用程序由確切證據(jù)說(shuō)明源服務(wù)器會(huì)為某請(qǐng)求產(chǎn)生一個(gè)失敗的期望鲜漩,就可以發(fā)送這個(gè)響應(yīng)狀態(tài)碼。

500 ~599 服務(wù)器錯(cuò)誤狀態(tài)碼

狀態(tài)碼 原因短語(yǔ) 含義
500 Internal Server Error 服務(wù)器遇到一個(gè)妨礙它作為請(qǐng)求提供服務(wù)的錯(cuò)誤時(shí)集惋,使用此狀態(tài)孕似。
501 Not Implemented 客戶(hù)端發(fā)起的請(qǐng)求超過(guò)服務(wù)器能力范圍(比如,使用了服務(wù)器不支持的請(qǐng)求方法)時(shí)刮刑,使用此狀態(tài)喉祭。
502 Bad Gateway 作為代理或網(wǎng)關(guān)使用的服務(wù)器從請(qǐng)求響應(yīng)鏈的下一條鏈路上收到了一條偽響應(yīng)(比如,他無(wú)法連接到父網(wǎng)關(guān))時(shí)雷绢,使用此狀態(tài)泛烙。
503 Service Unavailabe 用來(lái)說(shuō)明服務(wù)器現(xiàn)在無(wú)法為請(qǐng)求提供服務(wù),但將來(lái)可以翘紊。如果服務(wù)器知道什么時(shí)候資源會(huì)變?yōu)榭捎玫谋伟保梢栽陧憫?yīng)中包含一個(gè) Retry-After 首部。
504 Gateway Timeout 與狀態(tài)碼408類(lèi)似帆疟,只是這里的響應(yīng)來(lái)自一個(gè)網(wǎng)關(guān)或代理鹉究,它們?cè)诘却镆环?wù)器對(duì)其請(qǐng)求進(jìn)行響應(yīng)超時(shí)了。
505 HTTP Version Not Supported 服務(wù)器收到的請(qǐng)求使用了它無(wú)法或不愿支持的協(xié)議版本時(shí)踪宠,使用此狀態(tài)碼自赔。有些服務(wù)器應(yīng)用程序會(huì)選擇不支持早期版本的協(xié)議。

首部

1.通用首部

有些首部時(shí)客戶(hù)端和服務(wù)端都能使用柳琢,且提供了與報(bào)文相關(guān)的最基本信息绍妨,叫做通用首部

通用信息首部
首部 描述
Connection 允許客戶(hù)端和服務(wù)器指定與請(qǐng)求/響應(yīng)連接有關(guān)的選項(xiàng)柬脸。
Date 提供日期和時(shí)間標(biāo)志他去,說(shuō)明報(bào)文是什么時(shí)間創(chuàng)建的。
MIME-Version 給出了發(fā)送短使用的 MINE 版本倒堕。
Trailer 如果報(bào)文采用了分塊傳輸編碼(chunked transfer encoding)方式孤页,就可以用這個(gè)首部列出位于報(bào)文拖掛(trailer)部分的首部集合。
Transfer-Encoding 告知接收端為了保證報(bào)文的可靠傳輸涩馆,對(duì)報(bào)文采用了什么編碼方式行施。
Update 給出了發(fā)送端可能想要"升級(jí)"使用的新版本或協(xié)議。
Via 顯示報(bào)文經(jīng)過(guò)的中間節(jié)點(diǎn)(代理魂那、網(wǎng)關(guān))蛾号。
通用緩存首部
首部 描述
Cache-Control 用于隨報(bào)文傳送緩存指示。
Pragma 另一種隨報(bào)文傳送指示的方式涯雅,當(dāng)并不專(zhuān)用于緩存鲜结。

2.請(qǐng)求首部

請(qǐng)求首部是只在請(qǐng)求報(bào)文中有意義的首部。

請(qǐng)求的信息性首部
首部 描述
Client-IP 提供了運(yùn)行客戶(hù)端的機(jī)器的IP地址。
From 提供了客戶(hù)端用戶(hù)的 Email 地址精刷。(使用RFC 822 E-mail地址格式)
Host 給出了接受請(qǐng)求的服務(wù)器的主機(jī)名和端口號(hào)拗胜。
Referer 提供了包含當(dāng)前請(qǐng)求 URI 的文檔的 URL。
UA-Color 提供了與客戶(hù)端顯示器的現(xiàn)實(shí)顏色有關(guān)的信息怒允。
UA-CPU 提供了客戶(hù)端 CPU 的類(lèi)型和制造商埂软。
UA-Disp 提供了與客戶(hù)端顯示器能力有關(guān)的信息。
UA-OS 給出了運(yùn)行在客戶(hù)端機(jī)器上的操作系統(tǒng)名稱(chēng)和版本纫事。
UA-Pixels 提供了客戶(hù)端顯示器的色素信息勘畔。
User-Agent 將發(fā)起請(qǐng)求的應(yīng)用程序名告知服務(wù)器。
Accept首部

Accept首部為客戶(hù)端提供了一種將其喜好和能力告知服務(wù)器的方式丽惶。Accept首部會(huì)使連接的兩端都受益炫七。

首部 描述
Accept 告訴服務(wù)器能夠發(fā)送哪些媒體類(lèi)型。
Accept-Charset 告訴服務(wù)器能夠發(fā)送哪些字符集钾唬。
Accept-Encoding 告訴服務(wù)器能夠發(fā)送哪些編碼方式万哪。
Accept-Language 告訴服務(wù)器能夠發(fā)送哪些語(yǔ)言。
TE 告訴服務(wù)器可以使用哪些擴(kuò)咱傳輸編碼抡秆。
條件請(qǐng)求首部

有時(shí)客戶(hù)端希望為請(qǐng)求加上某些限制奕巍。比如,客戶(hù)端已經(jīng)有了一份文檔副本琅轧,就希望只在服務(wù)器上的文檔與客戶(hù)端擁有的副本有區(qū)別時(shí)伍绳,才請(qǐng)求服務(wù)器傳輸文檔踊挠。通過(guò)條件請(qǐng)求首部乍桂,客戶(hù)端就可以為請(qǐng)求加上這種限制,要求服務(wù)器在對(duì)請(qǐng)求進(jìn)行響應(yīng)之前效床,確保某個(gè)條件為真睹酌。

首部 描述
Expect 允許客戶(hù)端列出請(qǐng)求所要求的服務(wù)器行為。
If-Match 如果實(shí)體標(biāo)記與文檔當(dāng)前的實(shí)體標(biāo)記相匹配剩檀,就獲取這份文檔憋沿。
If-Modified-Since 除非在某個(gè)指定的日期之后資源被修改過(guò),否則就限制這個(gè)請(qǐng)求沪猴。
If-None-Match 如果提供的實(shí)體標(biāo)記與當(dāng)前文檔的實(shí)體標(biāo)記不相符辐啄,就獲取文檔。
If-Range 允許對(duì)文檔的某個(gè)范圍進(jìn)行條件請(qǐng)求运嗜。
If-Unmodified-Since 除非在某個(gè)指定日期之后資源沒(méi)有被修改過(guò)壶辜,否則限制這個(gè)請(qǐng)求。
Range 如果服務(wù)器支持范圍請(qǐng)求担租,就請(qǐng)求資源的指定范圍砸民。
安全請(qǐng)求首部
首部 描述
Authorization 包含了提供給服務(wù)器來(lái)對(duì)客戶(hù)端進(jìn)行自身認(rèn)證的數(shù)據(jù)。
Cookie 客戶(hù)端用它向服務(wù)器傳送一個(gè)令牌-----它并不是真正的安全首部,但卻是隱含了安全功能岭参。
Cookie2 用來(lái)說(shuō)明請(qǐng)求端支持的cookie版本反惕。
代理請(qǐng)求首部
首部 描述
Max-Forward 在通往源端服務(wù)器的路徑上,將請(qǐng)求轉(zhuǎn)發(fā)給其他代理或網(wǎng)管的最大次數(shù)----與 TRACE 方法一同使用演侯。
Proxy-Authorization 與 Authorization 首部相同姿染,但這個(gè)首部是在于代理進(jìn)行認(rèn)證時(shí)使用的。
Proxy-Connection 與 Connection 首部相同蚌本,但這個(gè)首部是在于代理建立連接時(shí)使用的盔粹。

3.響應(yīng)首部

響應(yīng)的信息性首部
首部 描述
Age (從最初創(chuàng)建開(kāi)始)響應(yīng)持續(xù)時(shí)間。
Public 服務(wù)器為其資源支持的請(qǐng)求方法列表程癌。
Retry-After 如果資源不可用的話舷嗡,在此日期或時(shí)間重試。
Server 服務(wù)器應(yīng)用程序軟件的名稱(chēng)和版本嵌莉。
Title 對(duì) HTML 文檔來(lái)說(shuō)进萄,就是 HTML 文檔的源端給出的標(biāo)題。
Warning 比原因短語(yǔ)更詳細(xì)一些的警告報(bào)文锐峭。
協(xié)商首部
首部 描述
Accept-Ranges 對(duì)此資源來(lái)說(shuō)中鼠,服務(wù)器可接受的范圍類(lèi)型。
Vary 服務(wù)器查看的其他首部列表沿癞,可能會(huì)使響應(yīng)發(fā)生變化援雇;也就是說(shuō),這是一個(gè)首部列表椎扬,服務(wù)器會(huì)根據(jù)這些首部的內(nèi)容挑選出最適合的資源版本發(fā)送給客戶(hù)端惫搏。
安全響應(yīng)首部
首部 描述
Proxy-Authenticate 來(lái)自代理的對(duì)客戶(hù)端的質(zhì)詢(xún)列表。
Set-Cookie 不是真正的安全首部蚕涤,但隱含安全功能筐赔;可以在客戶(hù)端設(shè)置一個(gè)令牌,以便服務(wù)器對(duì)其客戶(hù)端進(jìn)行標(biāo)識(shí)揖铜。
Set-Cookie2 與 Set-Cookie 類(lèi)似茴丰,PFC 2965 Cookie定義。
WWW-Authenticate 來(lái)自服務(wù)器對(duì)客戶(hù)端的質(zhì)詢(xún)列表天吓。

4.實(shí)體首部

實(shí)體首部提供了有關(guān)實(shí)體及其內(nèi)容的大量信息贿肩,請(qǐng)求和響應(yīng)報(bào)文中都可能包含實(shí)體部分,所以這兩類(lèi)報(bào)文都可能出現(xiàn)這些首部龄寞√妫總之,實(shí)體首部可以告知報(bào)文的接收者它在對(duì)什么進(jìn)行處理萄焦。

實(shí)體的信息性首部
首部 描述
Allow 列出可以對(duì)此事提執(zhí)行的請(qǐng)求方法控轿。
Location 告知客戶(hù)端實(shí)際上位于何處冤竹;用于將接收端定向到資源的(可能是新的)位置(URL)上去。
內(nèi)容首部

內(nèi)容首部提供了與實(shí)體內(nèi)容有關(guān)的特定信息茬射,說(shuō)明了其類(lèi)型鹦蠕,尺寸以及處理它所需要的其它有用信息。

首部 描述
Content-Base 解釋主體中的相對(duì) URL 時(shí)使用的基礎(chǔ) URL
Content-Encoding 對(duì)主體執(zhí)行的任意編碼方式在抛。
Content-Language 理解主體時(shí)最適宜使用的自然語(yǔ)言钟病。
Content-Length 主體的長(zhǎng)度或尺寸。
Content-Locaton 資源實(shí)際所處的位置刚梭。
Content-MD5 主體的 MD5 校驗(yàn)和肠阱。
Content-Range 在整個(gè)資源中此實(shí)體表示的字節(jié)范圍。
Content-Type 在這個(gè)主體的對(duì)象類(lèi)型朴读。
實(shí)體緩存首部

通用的緩存首部說(shuō)明了如何或者什么時(shí)候進(jìn)行緩存屹徘。實(shí)體的緩存首部提供了與被緩存實(shí)體有關(guān)的信息。

首部 描述
ETag 與此實(shí)體相關(guān)的實(shí)體標(biāo)記衅金。
Expires 實(shí)體不再有效噪伊,要從原始的源端再次獲取此實(shí)體的日期和時(shí)間。
Last-Modified 這個(gè)實(shí)體最后一次被修改的日期和時(shí)間氮唯。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鉴吹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子惩琉,更是在濱河造成了極大的恐慌豆励,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞒渠,死亡現(xiàn)場(chǎng)離奇詭異良蒸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)在孝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén)诚啃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)淮摔,“玉大人私沮,你說(shuō)我怎么就攤上這事『统龋” “怎么了仔燕?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)魔招。 經(jīng)常有香客問(wèn)我晰搀,道長(zhǎng),這世上最難降的妖魔是什么办斑? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任外恕,我火速辦了婚禮杆逗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鳞疲。我一直安慰自己罪郊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布尚洽。 她就那樣靜靜地躺著悔橄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腺毫。 梳的紋絲不亂的頭發(fā)上癣疟,一...
    開(kāi)封第一講書(shū)人閱讀 51,775評(píng)論 1 307
  • 那天邢滑,我揣著相機(jī)與錄音攘乒,去河邊找鬼。 笑死溃蔫,一個(gè)胖子當(dāng)著我的面吹牛急黎,可吹牛的內(nèi)容都是我干的竞川。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼叁熔,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼委乌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起荣回,我...
    開(kāi)封第一講書(shū)人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤遭贸,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后心软,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體壕吹,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年删铃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了耳贬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡猎唁,死狀恐怖咒劲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情诫隅,我是刑警寧澤腐魂,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站逐纬,受9級(jí)特大地震影響蛔屹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜豁生,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一兔毒、第九天 我趴在偏房一處隱蔽的房頂上張望漫贞。 院中可真熱鬧,春花似錦育叁、人聲如沸绕辖。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)仪际。三九已至,卻和暖如春昵骤,著一層夾襖步出監(jiān)牢的瞬間树碱,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工变秦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留成榜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓蹦玫,卻偏偏與公主長(zhǎng)得像赎婚,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子樱溉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

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