http 協議的請求和響應報文中必定包含 http 首部,只是我們平時
在使用 web 的過程中感受不到它。本章我們一起來學習 http 首部
的結構,以及首部中各字段的用法。
http 響應報文
在響應中,http 報文由 http 版本、狀態碼(數字和原因短語)、
http 首部字段 3 部分構成。
以下示例是之前請求訪問時,返回的響應報文的首部
資訊。http/1.1 304 not modified
date: thu, 07 jun 2012 07:21:36 gmt
server: apache
connection: close
etag: 「45bae1-16a-46d776ac」
在報文眾多的字段當中,http 首部字段包含的資訊最為豐富。首部
字段同時存在於請求和響應報文內,並涵蓋 http 報文相關的內容信
息。 因 http 版本或擴充套件規範的變化,首部欄位可支援的字段內容略有不
同。本書主要涉及 http/1.1 及常用的首部字段。
http 首部字段傳遞重要資訊
http 首部欄位是構成 http 報文的要素之一。在客戶端與伺服器之
間以 http 協議進行通訊的過程中,無論是請求還是響應都會使用首
部欄位,它能起到傳遞額外重要資訊的作用。
使用首部欄位是為了給瀏覽器和伺服器提供報文主體大小、所使用的
語言、認證資訊等內容。
http 首部字段結構
首部欄位名: 字段值
例如,在 http 首部中以 content-type 這個欄位來表示報文主體的 對
象型別。
content-type: text/html
就以上述示例來看,首部欄位名為 content-type,字串 text/html 是
字段值。
另外,字段值對應單個 http 首部字段可以有多個值,如下所示。
keep-alive: timeout=15, max=100
若 http 首部字段重複了會如何4 種 http 首部字段型別當 http 報文首部中出現了兩個或兩個以上具有相同首部欄位名時
會怎麼樣?這種情況在規範內尚未明確,根據瀏覽器內部處理邏輯
的不同,結果可能並不一致。有些瀏覽器會優先處理第一次出現的
首部字段,而有些則會優先處理最後出現的首部字段。
通用首部字段(general header fields)
請求報文和響應報文兩方都會使用的首部。
請求首部字段(request header fields)
響應首部字段(response header fields)
從伺服器端向客戶端返回響應報文時使用的首部。補充了響應的附加
內容,也會要求客戶端附加額外的內容資訊。
實體首部字段(entity header fields)
針對請求報文和響應報文的實體部分使用的首部。補充了資源內容更
新時間等與實體有關的資訊
下面列舉了 http/1.1 中的逐跳首部字段。除這 8 個首部字段之外,
其他所有欄位都屬於端到端首部。
HTTP學習筆記 HTTP首部字段(1)
http協議的請求和響應報文中必定包含http首部。首部內容為客戶端和伺服器分別處理請求和響應提供所需要的資訊。在請求中,http報文首部由以下幾部分構成 在響應中,http報文首部由以下幾個部分構成 首部字段同時存在與請求和響應報文內,並涵蓋http報文相關的內容資訊。http首部欄位是由首部欄位...
HTTP協議 HTTP首部總結
首部和方法配合工作,共同決定了客戶端和伺服器能做什麼事情。http協議的請求和響應報文中必定含有http首部,首部內容為客戶端和伺服器分別處理請求和響應提供所需要的資訊,對客戶端使用者來說,這些資訊中的大部分內容都無須親自檢視,因此平時在使用web的過程中感受不到它。http請求報文由方法 uri ...
HTTP協議 HTTP實體首部
有很多首部可以用來描述http報文的復合。由於請求和響應報文中都可能包含實體部分,所以在這兩種型別的報文中都可能出現這些首部。首部欄位名 說明allow 資源可支援的http方法 content encoding 實體主體使用的編碼方式 content language 實體主體的自然語言 cont...