HTTP
報(bào)文
HTTP報(bào)文包括3部分:
- 起始行
- 首部字段:名字和值以
:
區(qū)分勿锅,每個(gè)首部字段以\r\n
換行分割帕膜。首部以一個(gè)空行表示結(jié)束。 - 主體
請(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)文起始行結(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í)間氮唯。 |