HTTP Header Response 解析
Access-Control-Allow-Origin:表面該站點可以被哪些網站進行跨域資源共享(cross-origin resource sharing,CORS)(請參考“同源策略”和“跨域之源共享”),例如:Access-Control-Allow-Origin: http://example.com:8080 http://foo.example.com,或者Access-Control-Allow-Origin:*
Accept-Ranges:表明伺服器支不支援資源範圍請求(“資源範圍請求”是指按byte為單位,請求資源的某一段資料,例如請求一個檔案的200byte—400byte的資料)。Accept-Ranges:bytes 表示該資源支援byte形式資源範圍請求,Accept-Ranges:none則表示不支援。
Age:一個資源存在於代理中快取的時間。單位是秒。
Allow:一個資源允許哪些HTTP方法進行請求,例如:Allow: GET, HEAD
Cache-Control:(Cache-Control是內容比較多的一個頭域,我會在下一篇部落格做介紹)
Connection:連線方式。值有keep-alive和close
Content-Encoding:伺服器對響應資料的編碼方式,但這裡的編碼方式不同於編碼字符集(GB2312,UTF-8等),而是(通常)指壓縮方式,例如Content-Encoding:gzip
Content-Language:響應資料的自然語言,例如:Content-Language:ZH-CN
Content-Length:響應資料的資料長度,單位是byte,例如Content-Length:1024
Content-Location:(這個沒搞清什麼意思)
Content-MD5:基於base64編碼的迴應資料的MD5校驗和,例如:Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Disposition:當客戶端請求的資源是一個可下載的資源(這裡的“可下載”是指瀏覽器會彈出下載框或者下載介面)時,對這個可下載資源的描述(例如下載框中的檔名稱)就是來源於該頭域。例如:Content-Disposition: attachment; filename=”some_app.exe”
Content-Range:表示如果當前這個響應資料是整個資源的一部分時,是具體的哪一部分(從第幾byte到第幾byte)。在請求中,客戶端可以通過設定”Range”頭域來通知伺服器其只想請求整個資源中某一段資料,而對應的,當伺服器響應這種請求,併發送某一段資料到客戶端的時候,必須通過Content-Range頭來告訴客戶端當前的響應資料是整個資源的第幾byte到第幾byte。這個在資源的分段下載和續點下載應用中很有用。例如:Content-Range:500-900
Content-Type:響應資料的MIME型別,例如:Content-Type: text/html; charset=utf-8
Date:響應訊息傳送的GMT格式日期,例如:Date: Tue, 15 Nov 1994 08:12:31 GMT
ETag:(Entity-Tag的縮寫)資源的一個標識,類似於key-value pair(鍵值對)中的key。ETag通常用於校驗一個資源實體有沒有被修改過。在資料快取和PUT方法更新資源時候有用處。例如:ETag: “737060cd8c284d8af7ad3082f209582d”
Expires:告訴客戶端該響應資料會在指定的時間過期,通常用於給客戶端快取作為參考。例如:Expires: Thu, 01 Dec 1994 16:00:00 GMT
Last-Modified:客戶端所請求的資源的最後修改時間。
Link:描述當前被請求的資源和另外一個資源的關係。這種關係被定義在RFC5988。例如:Link: ; rel=”alternate”
Location:使用者通知客戶端轉跳(重定向)到另一個URL(就是asp.net中Response.Redirect()方法的效果)。例如:Location: http://www.w3.org/pub/WWW/People.html
P3P:Platform for Privacy Preferences Project的縮寫,表示本站點遵守P3P協議(標稱本站點不會違法使用使用者資訊)並希望收集使用者資訊。不過P3P目前使用並不廣泛,特別國內並不重視P3P。P3P的值的格式為: P3P:CP=”your_compact_policy”。
Pragma:在請求/響應鏈上附近的一些引數。該頭域內容較多,我會在下一篇部落格中做介紹。
Proxy-Authenticate:訪問代理時需要使用的驗證方式。例如:Proxy-Authenticate: Basic
Refresh:用於令客戶端在指定N秒後轉跳到另外一個URL。例如:Refresh:6,http://www.google.com.hk 6秒後轉跳到google
Retry-After:用於因為某些原因(例如該資源暫時無效)通知客戶端在指定時間後重新嘗試請求,時間單位為秒。例如:Retry-After:60 一分鐘後重新嘗試請求該資源。
Server:伺服器的名稱。例如 Server: Apache/2.4.1 (Unix)
Set-Cookie:對客戶端設定cookie。例如:Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
Strict-Transport-Security:用於指示客戶端如何對HTTPS進行快取(快取多長時間)以及是否對子域生效。例如:Strict-Transport-Security: max-age=16070400; includeSubDomains
Trailer:當響應資源已chunked編碼(具體請google一下chunked編碼)傳輸時,每個Chunked-Body尾部的額外資料。
Transfer-Encoding:響應內容的傳輸編碼方式,通常有 chunked, deflate, gzip等。
Vary:用來指示快取代理(例如squid)根據什麼條件去快取一個請求。Vary的可能值有: Vary: Accept-Encoding Vary: Accept-Encoding,User-Agent Vary: X-Some-Custom-Header,Host Vary: *
Via:告訴客戶端,該回應經歷了那些代理。例如 Via: 1.0 example1.com, 1.1 example2.com (Apache/1.1)
WWW-Authenticate:表示當前是用什麼驗證方式訪問一個資源。例如:WWW-Authenticate:base
通用的非標準HTTP頭域:
X-Content-Type-Options:IE和chrome中的一個非標準頭域,只有一個值:nosniff。通常地,針對一個請求的響應的頭域中有content-type頭域來描述內容的MIME型別,但有些內容並沒有提供其MIME型別,這時候瀏覽器可以自己探測
該內容是什麼型別,而X-Content-Type-Options:nosniff正是用於關閉自動嗅探功能。
X-Powered-By:表面當前站點(或資源)是用什麼技術開發,例如 X-Powered-By:ASP.NET。相關的還有X-Runtime, X-Version, X-AspNet-Version