這一類型的狀態碼,表明請求已被接受,須要繼續處理。這類響應是臨時響應,只包含狀態行和某些可選的響應頭信息,並以空行結束。因爲HTTP/1.0協議中沒有定義任何1xx狀態碼,因此除非在某些試驗條件下,服務器禁止向此類客戶端發送1xx響應。 這些狀態碼錶明的響應都是信息性的,標示客戶應該採起的其餘行動。php
這一類型的狀態碼,表明請求已成功被服務器接收、理解、並接受。html
這類狀態碼錶明須要客戶端採起進一步的操做才能完成請求。一般,這些狀態碼用來重定向,後續的請求地址(重定向目標)在本次響應的Location域中指明。jquery
當且僅當後續的請求所使用的方法是GET或者HEAD時,用戶瀏覽器才能夠在沒有用戶介入的狀況下自動提交所須要的後續請求。客戶端應當自動監測無限循環重定向(例如:A→B→C→……→A或A→A),由於這會致使服務器和客戶端大量沒必要要的資源消耗。按照HTTP/1.0版規範的建議,瀏覽器不該自動訪問超過5次的重定向。web
這類的狀態碼錶明瞭客戶端看起來可能發生了錯誤,妨礙了服務器的處理。除非響應的是一個HEAD請求,不然服務器就應該返回一個解釋當前錯誤情況的實體,以及這是臨時的仍是永久性的情況。這些狀態碼適用於任何請求方法。瀏覽器應當向用戶顯示任何包含在此類錯誤響應中的實體內容。數組
若是錯誤發生時客戶端正在傳送數據,那麼使用TCP的服務器實現應當仔細確保在關閉客戶端與服務器之間的鏈接以前,客戶端已經收到了包含錯誤信息的數據包。若是客戶端在收到錯誤信息後繼續向服務器發送數據,服務器的TCP棧將向客戶端發送一個重置數據包,以清除該客戶端全部還未識別的輸入緩衝,以避免這些數據被服務器上的應用程序讀取並干擾後者。瀏覽器
這類狀態碼錶明瞭服務器在處理請求的過程當中有錯誤或者異常狀態發生,也有多是服務器意識到以當前的軟硬件資源沒法完成對請求的處理。除非這是一個HEAD請求,不然服務器應當包含一個解釋當前錯誤狀態以及這個情況是臨時的仍是永久的解釋信息實體。瀏覽器應當向用戶展現任何在當前響應中被包含的實體。緩存
這些狀態碼適用於任何響應方法。安全
協議頭的字段,是在請求(request)或回覆(response)那一行(這是一條消息的第一行內容)內容以後傳輸的。協議頭的字段,是以明文的字符串格式傳輸的,以冒號分隔的鍵名/值對,最後以回車(CR)和換行(LF)符序列結尾。協議 頭部分的結束,是以一個空白的字段來標識的,結果就是,會傳輸兩個連續的回車換行符對。 在歷史上,曾經會將狠長的文字行以多個短行的形式傳輸; 在下一行的開頭,輸出一個空格(SP)或者一個水平製表符(HT),表示它是一個後續行。現在, 這種換行形式已經廢棄了[1]。服務器
在由互聯網工程任務組 (IETF)發行的徵求修正意見書 7231 中,對一組核心的字段進行了標準化。 有一份對於這些字段的官方的登記冊,以及 一系列的補充規範 ,由互聯網號碼分配局(IANA)維護。各個應用程序 也能夠自行定義額外的字段名字及相應的值。cookie
協議頭的固定登記冊和臨時註冊倉庫是由互聯網號碼分配局維護的。 按照慣例 ,對於非標準的協議頭字段, 是在字段名字前面加上 X- 前綴來標識的。 然而 ,這一慣例在2012 年六月被廢棄了,由於 ,按照這種慣例, 當非標準字段變成標準字段時,會引發不少不方便之處。 以前曾有的,對於 Downgraded- 的使用限制,也被取消了。
某些字段 中能夠包含註釋內容 ( 也就是說,在 User-Agent 、 Server 、 Via字段 中 ) , 這些註釋內容可被應用程序忽略。
不少字段值中都會帶有帶權重的(quality ( q ))鍵值對, 這種權重會在 內容協商 的過程 中使用。
標準 中沒有針對每一個協議頭字段的名字和值的尺寸設置任何限制, 也沒有限制字段的個數。然而 ,出於實際場景及安全性的考慮,大部分的服務器、客戶端和代理軟件都會實施一些限制。例如, 阿帕奇(Apache)2.3 服務器, 在默認狀況下, 會限制每一個字段的尺寸不超過 8190字節 , 同時,單個請求中最多能夠有 100 個協議頭字段[2]。
協議頭字段名 | 說明 | 示例 | 狀態 |
---|---|---|---|
Accept | 可以接受的迴應內容類型(Content-Types)。參見內容協商。 | Accept: text/plain |
Permanent |
Accept-Charset | 可以接受的字符集 | Accept-Charset: utf-8 |
Permanent |
Accept-Encoding | 可以接受的編碼方式列表。參考 超文本傳輸協議壓縮 。 | Accept-Encoding: gzip, deflate |
Permanent |
Accept-Language | 可以接受的迴應內容的天然語言列表。參考 內容協商 。 | Accept-Language: en-US |
Permanent |
Accept-Datetime | 可以接受的按照時間來表示的版本 | Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT |
Provisional |
Authorization | 用於超文本傳輸協議的認證的認證信息 | Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
Permanent |
Cache-Control | 用來指定在此次的請求/回覆鏈中的全部緩存機制 都必須 遵照的指令 | Cache-Control: no-cache |
Permanent |
Connection | 該瀏覽器想要優先使用的鏈接類型 | Connection: keep-alive
|
Permanent |
Cookie | 以前由服務器經過 Set- Cookie (下文詳述)發送的一個 超文本傳輸協議Cookie | Cookie: $Version=1; Skin=new; |
Permanent: standard |
Content-Length | 以 八位字節數組 (8位的字節)表示的請求體的長度 | Content-Length: 348 |
Permanent |
Content-MD5 | 請求體的內容的二進制 MD5 散列值,以 Base64 編碼的結果 | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== |
Obsolete[4] |
Content-Type | 請求體的 多媒體類型 (用於POST和PUT請求中) | Content-Type: application/x-www-form-urlencoded |
Permanent |
Date | 發送該消息的日期和時間(按照 RFC 7231 中定義的"超文本傳輸協議日期"格式來發送) | Date: Tue, 15 Nov 1994 08:12:31 GMT |
Permanent |
Expect | 代表客戶端要求服務器作出特定的行爲 | Expect: 100-continue |
Permanent |
From | 發起此請求的用戶的郵件地址 | From: user@example.com |
Permanent |
Host | 服務器的域名(用於 虛擬 主機 ),以及服務器所監聽的 傳輸控制協議端口 號。若是所請求的端口是對應的服務的標準端口,則 端口 號可被省略。 [5] 自超文件傳輸協議版本1.1(HTTP/1.1)開始即是必需字段。 |
Host: en.wikipedia.org:80
|
Permanent |
If-Match | 僅當客戶端提供的實體與服務器上對應的實體相匹配時,才進行對應的操做。主要做用時,用做像 PUT 這樣的方法中,僅當從用戶上次更新某個資源以來,該資源未被修改的狀況下,才更新該資源。 | If-Match: "737060cd8c284d8af7ad3082f209582d" |
Permanent |
If-Modified-Since | 容許在對應的內容未被修改的狀況下返回304未修改( 304 Not Modified ) | If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT |
Permanent |
If-None-Match | 容許在對應的內容未被修改的狀況下返回304未修改( 304 Not Modified ),參考 超文本傳輸協議 的實體標記 | If-None-Match: "737060cd8c284d8af7ad3082f209582d" |
Permanent |
If-Range | 若是該實體未被修改過,則向我發送我所缺乏的那一個或多個部分;不然,發送整個新的實體 | If-Range: "737060cd8c284d8af7ad3082f209582d" |
Permanent |
If-Unmodified-Since | 僅當該實體自某個特定時間已來未被修改的狀況下,才發送迴應。 | If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT |
Permanent |
Max-Forwards | 限制該消息可被代理及網關轉發的次數。 | Max-Forwards: 10 |
Permanent |
Origin | 發起一個針對 跨來源資源共享 的請求(要求服務器在迴應中加入一個‘訪問控制-容許來源’('Access-Control-Allow-Origin')字段)。 | Origin: http://www.example-social-network.com |
Permanent: standard |
Pragma | 與具體的實現相關,這些字段可能在請求/迴應鏈中的任什麼時候候產生 多種效果。 | Pragma: no-cache |
Permanent |
Proxy-Authorization | 用來向代理進行認證的認證信息。 | Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
Permanent |
Range | 僅請求某個實體的一部分。字節偏移以0開始。參考 字節服務 。 | Range: bytes=500-999 |
Permanent |
Referer [sic] | 表示瀏覽器所訪問的前一個頁面,正是那個頁面上的某個連接將瀏覽器帶到了當前所請求的這個頁面。(「引導者」(「referrer」)這個單詞,在RFC 中被拼錯了,所以在大部分的軟件實現中也拼錯了,以致於,錯誤的拼法成爲了標準的用法,還被當成了正確的術語) | Referer: http://en.wikipedia.org/wiki/Main_Page |
Permanent |
TE | 瀏覽器預期接受的傳輸編碼方式:可以使用迴應協議頭Transfer-Encoding 字段中的那些值,另外還有一個值可用,"trailers"(與" 分 塊 "傳輸方式相關),用來代表,瀏覽器但願在最後一個尺寸爲0的塊以後還接收到一些額外的字段。 | TE: trailers, deflate |
Permanent |
User-Agent | 瀏覽器的瀏覽器身份標識字符串 | User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0 |
Permanent |
Upgrade | 要求服務器升級到另外一個協議。 | Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 |
Permanent |
Via | 向服務器告知,這個請求是由哪些代理髮出的。 | Via: 1.0 fred, 1.1 example.com (Apache/1.1) |
Permanent |
Warning | 一個通常性的警告,告知,在實體內容體中可能存在錯誤。 | Warning: 199 Miscellaneous warning |
Permanent |
字段名 | 說明 | 示例 |
---|---|---|
X-Requested-With | 主要用於標識 Ajax 及可擴展標記語言 請求。大部分的 爪哇腳本框架 會發送這個字段,且將其值設置爲 XMLHttpRequest | X-Requested-With: XMLHttpRequest |
DNT[6] | 請求某個網頁應用程序中止跟蹤某個用戶。在火狐瀏覽器中,至關於X-Do-Not-Track協議頭字段(自 火狐4.0 測試(Beta) 11版開始支持)。 Safari 和 Internet Explorer 9 也支持這個字段。在2011 年三月7 日,有人向互聯網工程任務組提交了一個草案。 [7] 萬維網協會 的跟蹤保護工做組正在就此製做一項規範。[8] | DNT: 1 (Do Not Track Enabled)
|
X-Forwarded-For[9] | 一個事實標準 ,用於標識某個經過超文本傳輸協議代理或負載均衡鏈接到某個網頁服務器的客戶端的原始互聯網地址 | X-Forwarded-For: client1, proxy1, proxy2
|
X-Forwarded-Host[10] | a de facto standard for identifying the original host requested by the client in the Host HTTP request header, since the host name and/or port of the reverse proxy (load balancer) may differ from the origin server handling the request. |
X-Forwarded-Host: en.wikipedia.org:80
|
X-Forwarded-Proto[11] | 一個事實標準 用於標識某個超文本傳輸協議請求最初所使用的協議,由於,在反向代理(負載均衡)上,即便最初發往該反向代理的請求類型是安全的超文本傳輸協議(HTTPS),該反向代理也仍然可能會使用超文本傳輸協議(HTTP)來與網頁服務器通訊。谷歌客戶端在與谷歌服務器通訊時會使用該協議頭的一個替代形式(X-ProxyUser-Ip)。 | X-Forwarded-Proto: https |
Front-End-Https[12] | Non-standard header field used by Microsoft applications and load-balancers | Front-End-Https: on |
X-Http-Method-Override[13] | 請求某個網頁應用程序使用該協議頭字段中指定的方法(通常是PUT或DELETE)來覆蓋掉在請求中所指定的方法(通常是POST)。當某個瀏覽器或防火牆阻止直接發送PUT 或DELETE 方法時(注意,這多是由於軟件中的某個漏洞,於是須要修復,也多是由於某個配置選項就是如此要求的,於是不該當設法繞過),可以使用這種方式。 | X-HTTP-Method-Override: DELETE |
X-ATT-DeviceId[14] | Allows easier parsing of the MakeModel/Firmware that is usually found in the User-Agent String of AT&T Devices | X-Att-Deviceid: GT-P7320/P7320XXLPG |
X-Wap-Profile[15] | Links to an XML file on the Internet with a full description and details about the device currently connecting. In the example to the right is an XML file for an AT&T Samsung Galaxy S2. | x-wap-profile:http://wap.samsungmobile.com/uaprof/SGH-I777.xml |
Proxy-Connection[16] | 由於對超文本傳輸協議規範的誤解而實現的一個協議頭。由於早期超文本傳輸協議版本實現中的錯誤而出現。與標準的鏈接(Connection)字段的功能徹底相同。 | Proxy-Connection: keep-alive |
X-UIDH[17][18][19] | Server-side deep packet insertion of a unique ID identifying customers of Verizon Wireless; also known as "perma-cookie" or "supercookie" | X-UIDH: . .. |
X-Csrf-Token[20] | Used to prevent cross-site request forgery. Alternative header names are: X-CSRFToken [21] and X-XSRF-TOKEN [22] |
X-Csrf-Token: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql |
Field name | Description | Example | Status |
---|---|---|---|
Access-Control-Allow-Origin | 指定哪些網站可參與到 跨來源資源共享 過程當中 | Access-Control-Allow-Origin: * |
Provisional |
Accept-Patch[23] | Specifies which patch document formats this server supports | Accept-Patch: text/example;charset=utf-8 |
Permanent |
Accept-Ranges | 這個服務器支持哪些種類的部份內容範圍 | Accept-Ranges: bytes |
Permanent |
Age | 這個對象在 代理緩存 中存在的時間,以秒爲單位 | Age: 12 |
Permanent |
Allow | 對於特定資源有效的動做。針對405不容許該方法( 405 Method not allowed )而使用 | Allow: GET, HEAD |
Permanent |
Cache-Control | 向從服務器直到客戶端在內的全部緩存機制告知,它們是否能夠緩存這個對象。其單位爲秒 | Cache-Control: max-age=3600 |
Permanent |
Connection | 針對該鏈接所預期的選項 | Connection: close |
Permanent |
Content-Disposition[24] | An opportunity to raise a "File Download" dialogue box for a known MIME type with binary format or suggest a filename for dynamic content. Quotes are necessary with special characters. | Content-Disposition: attachment; filename="fname.ext" |
Permanent |
Content-Encoding | 在數據上使用的編碼類型。參考 超文本傳輸協議壓縮 。 | Content-Encoding: gzip |
Permanent |
Content-Language | 內容所使用的語言 | Content-Language: da |
Permanent |
Content-Length | 迴應消息體的長度,以 字節 (8位爲一字節)爲單位 | Content-Length: 348 |
Permanent |
Content-Location | 所返回的數據的一個候選位置 | Content-Location: /index.htm |
Permanent |
Content-MD5 | 迴應內容的二進制 MD5 散列,以 Base64 方式編碼 | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== |
Obsolete[26] |
Content-Range | 這條部分消息是屬於某條完整消息的哪一個部分 | Content-Range: bytes 21010-47021/47022 |
Permanent |
Content-Type | 當前內容的MIME類型 | Content-Type: text/html; charset=utf-8 |
Permanent |
Date | 此條消息被髮送時的日期和時間(按照 RFC 7231 中定義的「超文本傳輸協議日期」格式來表示) | Date: Tue, 15 Nov 1994 08:12:31 GMT |
Permanent |
ETag | 對於某個資源的某個特定版本的一個標識符,一般是一個 消息散列 | ETag: "737060cd8c284d8af7ad3082f209582d" |
Permanent |
Expires | 指定一個日期/時間,超過該時間則認爲此迴應已通過期 | Expires: Thu, 01 Dec 1994 16:00:00 GMT |
Permanent: standard |
Last-Modified | 所請求的對象的最後修改日期(按照 RFC 7231 中定義的「超文本傳輸協議日期」格式來表示) | Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT |
Permanent |
Link | 用來表達與另外一個資源之間的類型關係,此處所說的類型關係是在 RFC 5988 中定義的 | Link: </feed>; rel="alternate" [27] |
Permanent |
Location | 用來 進行 重定向 ,或者在建立了某個新資源時使用。 | Location: http://www.w3.org/pub/WWW/People.html |
Permanent |
P3P | This field is supposed to set P3P policy, in the form ofP3P:CP="your_compact_policy" . However, P3P did not take off,[28] most browsers have never fully implemented it, a lot of websites set this field with fake policy text, that was enough to fool browsers the existence of P3P policy and grant permissions for third party cookies. |
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info." |
Permanent |
Pragma | 與具體的實現相關,這些字段可能在請求/迴應鏈中的任什麼時候候產生多種效果。 | Pragma: no-cache |
Permanent |
Proxy-Authenticate | 要求在訪問代理時提供身份認證信息。 | Proxy-Authenticate: Basic |
Permanent |
Public-Key-Pins[29] | 用於緩解 中間人攻擊 ,聲明網站的認證用的 傳輸 層安全協議 證書的散列值 | Public-Key-Pins: max-age=2592000; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g="; |
Permanent |
Refresh | Used in redirection, or when a new resource has been created. This refresh redirects after 5 seconds. | Refresh: 5; url=http://www.w3.org/pub/WWW/People.html |
Proprietary and non-standard: a header extension introduced by Netscape and supported by most web browsers. |
Retry-After | 若是某個實體臨時不可用,則,此協議頭用來告知客戶端往後重試。其值能夠是一個特定的時間段(以秒爲單位)或一個超文本傳輸協議日期。 [30] |
|
Permanent |
Server | 服務器的名字 | Server: Apache/2.4.1 (Unix) |
Permanent |
Set-Cookie | HTTP cookie | Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1 |
Permanent: standard |
Status | 通用網關接口 協議頭字段,用來講明當前這個超文本傳輸協議迴應的 狀態 。普通的超文本傳輸協議迴應,會使用單獨的「狀態行」("Status-Line")做爲替代,這一點是在 RFC 7230 中定義的。 |
Status: 200 OK |
Not listed as aregistered field name |
Strict-Transport-Security | A HSTS Policy informing the HTTP client how long to cache the HTTPS only policy and whether this applies to subdomains. | Strict-Transport-Security: max-age=16070400; includeSubDomains |
Permanent: standard |
Trailer | The Trailer general field value indicates that the given set of header fields is present in the trailer of a message encoded with chunked transfer coding. | Trailer: Max-Forwards |
Permanent |
Transfer-Encoding | 用來將實體安全地傳輸給用戶的編碼形式。 當前定義 的方法 包括: 分 塊 、壓縮(compress)、縮小(deflate)、壓縮(gzip)、實體(identity)。 | Transfer-Encoding: chunked |
Permanent |
Upgrade | 要求客戶端升級到另外一個協議。 | Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 |
Permanent |
Vary | 告知下游的代理服務器,應當如何對將來的請求協議頭進行匹配,以決定是否可以使用已緩存的迴應內容而不是從新從原始服務器請求新的內容。 | Vary: * |
Permanent |
Via | 告知代理服務器的客戶端,當前迴應是經過什麼途徑發送的。 | Via: 1.0 fred, 1.1 example.com (Apache/1.1) |
Permanent |
Warning | 通常性的警告,告知在實體內容體中可能存在錯誤。 | Warning: 199 Miscellaneous warning |
Permanent |
WWW-Authenticate | 代表在請求獲取這個實體時應當使用的認證模式。 | WWW-Authenticate: Basic |
Permanent |
X-Frame-Options[32] | Clickjacking protection: deny - no rendering within a frame,sameorigin - no rendering if origin mismatch, allow-from - allow from specified location, allowall - non-standard, allow from any location | X-Frame-Options: deny |
Obsolete[33] |
字段名 | 說明 | 示例 |
---|---|---|
X-XSS-Protection[34] | 跨站腳本攻擊 (XSS)過濾器 | X-XSS-Protection: 1; mode=block |
Content-Security-Policy,X-Content-Security-Policy,X-WebKit-CSP[35] | 內容安全策略定義。 | X-WebKit-CSP: default-src 'self' |
X-Content-Type-Options[36] | The only defined value, "nosniff", prevents Internet Explorer from MIME-sniffing a response away from the declared content-type. This also applies to Google Chrome, when downloading extensions.[37] | X-Content-Type-Options: nosniff |
X-Powered-By[38] | 代表用於支持當前網頁應用程序的技術(例如PHP)(版本號細節一般放置在 X-Runtime 或 X-Version 中) | X-Powered-By: PHP/5.4.0 |
X-UA-Compatible[39] | Recommends the preferred rendering engine (often a backward-compatibility mode) to use to display the content. Also used to activate Chrome Frame in Internet Explorer. | X-UA-Compatible: IE=EmulateIE7
|
X-Content-Duration[40] | Provide the duration of the audio or video in seconds; only supported by Gecko browsers | X-Content-Duration: 42.666 |