HTTP Header 詳解

robin_online發表於2020-11-14

HTTP Header 詳解

HTTP(HyperTextTransferProtocol) 即超文字傳輸協議,目前網頁傳輸的的通用協議。HTTP協議採用了請求/響應模 型,瀏覽器或其他客戶端發出請求,伺服器給與響應。就整個網路資源傳輸而言,包括message-header和message-body兩部分。首先傳 遞message-header,即http header訊息 。http header 訊息通常被分為4個部分:general  header, request header, response header, entity header。但是這種分法就理解而言,感覺界限不太明確。根據維基百科對http header內容的組織形式,大體分為Request和Response兩部分。

Requests部分

Header解釋示例
Accept指定客戶端能夠接收的內容型別Accept: text/plain, text/html
Accept-Charset瀏覽器可以接受的字元編碼集。Accept-Charset: iso-8859-5
Accept-Encoding指定瀏覽器可以支援的web伺服器返回內容壓縮編碼型別。Accept-Encoding: compress, gzip
Accept-Language瀏覽器可接受的語言Accept-Language: en,zh
Accept-Ranges可以請求網頁實體的一個或者多個子範圍欄位Accept-Ranges: bytes
AuthorizationHTTP授權的授權證書Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control指定請求和響應遵循的快取機制Cache-Control: no-cache
Connection表示是否需要持久連線。(HTTP 1.1預設進行持久連線)Connection: close
CookieHTTP請求傳送時,會把儲存在該請求域名下的所有cookie值一起傳送給web伺服器。Cookie: $Version=1; Skin=new;
Content-Length請求的內容長度Content-Length: 348
Content-Type請求的與實體對應的MIME資訊Content-Type: application/x-www-form-urlencoded
Date請求傳送的日期和時間Date: Tue, 15 Nov 2010 08:12:31 GMT
Expect請求的特定的伺服器行為Expect: 100-continue
From發出請求的使用者的EmailFrom: user@email.com
Host指定請求的伺服器的域名和埠號Host: www.zcmhi.com
If-Match只有請求內容與實體相匹配才有效If-Match: “737060cd8c284d8af7ad3082f209582d”
If-Modified-Since如果請求的部分在指定時間之後被修改則請求成功,未被修改則返回304程式碼If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT
If-None-Match如果內容未改變返回304程式碼,引數為伺服器先前傳送的Etag,與伺服器回應的Etag比較判斷是否改變If-None-Match: “737060cd8c284d8af7ad3082f209582d”
If-Range如果實體未改變,伺服器傳送客戶端丟失的部分,否則傳送整個實體。引數也為EtagIf-Range: “737060cd8c284d8af7ad3082f209582d”
If-Unmodified-Since只在實體在指定時間之後未被修改才請求成功If-Unmodified-Since: Sat, 29 Oct 2010 19:43:31 GMT
Max-Forwards限制資訊通過代理和閘道器傳送的時間Max-Forwards: 10
Pragma用來包含實現特定的指令Pragma: no-cache
Proxy-Authorization連線到代理的授權證書Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range只請求實體的一部分,指定範圍Range: bytes=500-999
Referer先前網頁的地址,當前請求網頁緊隨其後,即來路Referer: http://www.zcmhi.com/archives/71.html
TE客戶端願意接受的傳輸編碼,並通知伺服器接受接受尾加頭資訊TE: trailers,deflate;q=0.5
Upgrade向伺服器指定某種傳輸協議以便伺服器進行轉換(如果支援)Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
User-AgentUser-Agent的內容包含發出請求的使用者資訊User-Agent: Mozilla/5.0 (Linux; X11)
Via通知中間閘道器或代理伺服器地址,通訊協議Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning關於訊息實體的警告資訊Warn: 199 Miscellaneous warning

Responses 部分 

Header解釋示例
Accept-Ranges表明伺服器是否支援指定範圍請求及哪種型別的分段請求Accept-Ranges: bytes
Age從原始伺服器到代理快取形成的估算時間(以秒計,非負)Age: 12
Allow對某網路資源的有效的請求行為,不允許則返回405Allow: GET, HEAD
Cache-Control告訴所有的快取機制是否可以快取及哪種型別Cache-Control: no-cache
Content-Encodingweb伺服器支援的返回內容壓縮編碼型別。Content-Encoding: gzip
Content-Language響應體的語言Content-Language: en,zh
Content-Length響應體的長度Content-Length: 348
Content-Location請求資源可替代的備用的另一地址Content-Location: /index.htm
Content-MD5返回資源的MD5校驗值Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Range在整個返回體中本部分的位元組位置Content-Range: bytes 21010-47021/47022
Content-Type返回內容的MIME型別Content-Type: text/html; charset=utf-8
Date原始伺服器訊息發出的時間Date: Tue, 15 Nov 2010 08:12:31 GMT
ETag請求變數的實體標籤的當前值ETag: “737060cd8c284d8af7ad3082f209582d”
Expires響應過期的日期和時間Expires: Thu, 01 Dec 2010 16:00:00 GMT
Last-Modified請求資源的最後修改時間Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT
Location用來重定向接收方到非請求URL的位置來完成請求或標識新的資源Location: http://www.zcmhi.com/archives/94.html
Pragma包括實現特定的指令,它可應用到響應鏈上的任何接收方Pragma: no-cache
Proxy-Authenticate它指出認證方案和可應用到代理的該URL上的引數Proxy-Authenticate: Basic
refresh應用於重定向或一個新的資源被創造,在5秒之後重定向(由網景提出,被大部分瀏覽器支援)

 

 

Refresh: 5; url=

http://www.zcmhi.com/archives/94.html

Retry-After如果實體暫時不可取,通知客戶端在指定時間之後再次嘗試Retry-After: 120
Serverweb伺服器軟體名稱Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Set-Cookie設定Http CookieSet-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
Trailer指出頭域在分塊傳輸編碼的尾部存在Trailer: Max-Forwards
Transfer-Encoding檔案傳輸編碼Transfer-Encoding:chunked
Vary告訴下游代理是使用快取響應還是從原始伺服器請求Vary: *
Via告知代理客戶端響應是通過哪裡傳送的Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning警告實體可能存在的問題Warning: 199 Miscellaneous warning
WWW-Authenticate表明客戶端請求實體應該使用的授權方案WWW-Authenticate: Basic

相關文章