HTTP消息頭是指,在超文本傳輸協議( Hypertext Transfer Protocol ,HTTP)的請求和響應消息中,協議頭部分的那些組件。HTTP消息頭用來准確描述正在獲取的資源、服務器或者客戶端的行為,定義了HTTP事務中的具體操作參數。
HTTP消息頭是在,客戶端請求(Request)或服務器響應(Response)時傳遞的,位請求或響應的第一行,HTTP消息體(請求或響應的內容)是其后傳輸。HTTP消息頭,以明文的字符串格式傳送,是以冒號分隔的鍵/值對,如:Accept-Charset: utf-8,每一個消息頭最后以回車符(CR)和換行符(LF)結尾。HTTP消息頭結束后,會用一個空白的字段來標識,這樣就會出現兩個連續的CR-LF。
HTTP消息頭支持自定義, 自定義的專用消息頭一般會添加'X-'前綴。
(HttpClient中可以在HttpHeaders中查找,都是靜態屬性)
一、常用的HTTP請求頭
| 協議頭 | 說明 | 示例 | 狀態 |
| Accept | 可接受的響應內容類型 | Accept: text/plain | 固定 |
| Accept-Charset | 可接受的字符集 | Accept-Charset: utf-8 | 固定 |
| Accept-Encoding | 可接受的響應內容的編碼方式。 | Accept-Encoding: gzip, deflate | 固定 |
| Accept-Language | 可接受的響應內容語言列表。 | Accept-Language: en-US | 固定 |
| Authorization | 用於表示HTTP協議中需要認證資源的認證信息 | Authorization: Basic OSdjJGRpbjpvcGVuIANlc2SdDE== | 固定 |
| Cache-Control | 用來指定當前的請求/回復中的,是否使用緩存機制。 | Cache-Control: no-cache | 固定 |
| Connection | 客戶端(瀏覽器)想要優先使用的連接類型 | Connection: keep-alive |
固定 |
| Cookie | 由之前服務器通過Set-Cookie(見下文)設置的一個HTTP協議Cookie | Cookie: $Version=1; Skin=new; | 固定:標准 |
| Content-Length | 以8進制表示的請求體的長度 | Content-Length: 348 | 固定 |
| Content-Type | 請求體的MIME類型 (用於POST和PUT請求中) | Content-Type: application/x-www-form-urlencoded | 固定 |
| Expect | 表示客戶端要求服務器做出特定的行為 | Expect: 100-continue | 固定 |
| From | 發起此請求的用戶的郵件地址 | From: user@itbilu.com | 固定 |
| Host | 表示服務器的域名以及服務器所監聽的端口號。如果所請求的端口是對應的服務的標准端口(80),則端口號可以省略。 | Host: www.itbilu.com:80 |
固定 |
| Max-Forwards | 限制該消息可被代理及網關轉發的次數。 | Max-Forwards: 10 | 固定 |
| Origin | 發起一個針對跨域資源共享的請求(該請求要求服務器在響應中加入一個Access-Control-Allow-Origin的消息頭,表示訪問控制所允許的來源)。 | Origin: http://www.itbilu.com | 固定:標准 |
| Referer | 表示瀏覽器所訪問的前一個頁面,可以認為是之前訪問頁面的鏈接將瀏覽器帶到了當前頁面。Referer其實是Referrer這個單詞,但RFC制作標准時給拼錯了,后來也就將錯就錯使用Referer了。 | Referer: http://itbilu.com/nodejs | 固定 |
| User-Agent | 瀏覽器的身份標識字符串 | User-Agent: Mozilla/…… | 固定 |
| Via | 告訴服務器,這個請求是由哪些代理發出的。 | Via: 1.0 fred, 1.1 itbilu.com.com (Apache/1.1) | 固定 |
| Warning | 一個一般性的警告,表示在實體內容體中可能存在錯誤。 | Warning: 199 Miscellaneous warning | 固定 |
二、常用的HTTP響應頭
| 響應頭 | 說明 | 示例 | 狀態 |
| Access-Control-Allow-Origin | 指定哪些網站可以跨域源資源共享 |
Access-Control-Allow-Origin: * | 臨時 |
| Age | 響應對象在代理緩存中存在的時間,以秒為單位 | Age: 12 | 固定 |
| Allow | 對於特定資源的有效動作 | Allow: GET, HEAD | 固定 |
| Cache-Control | 通知從服務器到客戶端內的所有緩存機制,表示它們是否可以緩存這個對象及緩存有效時間。其單位為秒 | Cache-Control: max-age=3600 | 固定 |
| Content-Encoding | 響應資源所使用的編碼類型。 | Content-Encoding: gzip | 固定 |
| Content-Language | 響應內容所使用的語言 | Content-Language: zh-cn | 固定 |
| Content-Length | 響應消息體的長度,用8進制字節表示 | Content-Length: 348 | 固定 |
| Content-Type | 當前內容的MIME類型 |
Content-Type: text/html; charset=utf-8 | 固定 |
| Expires | 指定一個日期/時間,超過該時間則認為此回應已經過期 | Expires: Thu, 01 Dec 1994 16:00:00 GMT | 固定:標准 |
| Last-Modified | 請求的對象的最后修改日期 | Last-Modified: Dec, 26 Dec 2015 17:30:00 GMT | 固定 |
| Refresh | 用於重定向,或者當一個新的資源被創建時。默認會在5秒后刷新重定向。 | Refresh: 5; url=http://itbilu.com | 固定 |
| Retry-After | 如果某個實體臨時不可用,那么此協議頭用於告知客戶端稍后重試。其值可以是一個特定的時間段(以秒為單位)或一個超文本傳輸協議日期。 | 示例1:Retry-After: 120 |
固定 |
| Server | 服務器的名稱 | Server: nginx/1.6.3 |
固定 |
| Set-Cookie | 設置HTTP cookie |
Set-Cookie: UserID=itbilu; Max-Age=3600; Version=1 | 固定:標准 |
| Status | 通用網關接口的響應頭字段,用來說明當前HTTP連接的響應狀態。 | Status: 200 OK | 固定 |
| WWW-Authenticate | 表示在請求獲取這個實體時應當使用的認證模式。 | WWW-Authenticate: Basic | 固定 |
