HTTP===http首部字段

HTTP 首部字段

HTTP 首部字段是構成 HTTP 報文的要素之一。在客戶端與服務器之間以 HTTP 協議進行通訊的過程當中,不管是請求仍是響應都會使用首部字段,它能起到傳遞額外重要信息的做用。html

使用首部字段是爲了給瀏覽器和服務器提供報文主體大小、所使用的語言、認證信息等內容。瀏覽器

HTTP 首部字段結構

HTTP 首部字段是由首部字段名和字段值構成的,中間用冒號「:」 分隔。
                                 首部字段名: 字段值
例如,在 HTTP 首部中以 Content-Type 這個字段來表示報文主體的 對象類型。
           Content-Type: text/html緩存

就以上述示例來看,首部字段名爲 Content-Type,字符串 text/html 是字段值。服務器

另外,字段值對應單個 HTTP 首部字段能夠有多個值,以下所示。
          Keep-Alive: timeout=15, max=100spa

*若 HTTP 首部字段重複了會如何
當 HTTP 報文首部中出現了兩個或兩個以上具備相同首部字段名時會怎麼樣?這種狀況在規範內還沒有明確,根據瀏覽器內部處理邏輯的不一樣,結果可能並不一致。有些瀏覽器會優先處理第一次出現的首部字段,而有些則會優先處理最後出現的首部字段。3d

4 種 HTTP 首部字段類型

HTTP 首部字段根據實際用途被分爲如下 4 種類型。
通用首部字段(General Header Fields)
請求報文和響應報文兩方都會使用的首部。
請求首部字段(Request Header Fields)
從客戶端向服務器端發送請求報文時使用的首部。補充了請求的附加內容、客戶端信息、響應內容相關優先級等信息。
響應首部字段(Response Header Fields)
從服務器端向客戶端返回響應報文時使用的首部。補充了響應的附加內容,也會要求客戶端附加額外的內容信息。
實體首部字段(Entity Header Fields)
針對請求報文和響應報文的實體部分使用的首部。補充了資源內容更新時間等與實體有關的信息。代理

HTTP/1.1 規範定義了以下 47 種首部字段。htm

通用首部字段:對象

請求首部字段:blog

響應首部字段:

實體首部字段:

非 HTTP/1.1 首部字段

在 HTTP 協議通訊交互中使用到的首部字段,不限於 RFC2616 中定義的 47 種首部字段。還有 Cookie、Set-Cookie 和 Content-Disposition等在其餘 RFC 中定義的首部字段,它們的使用頻率也很高。

這些非正式的首部字段統一概括在 RFC4229 HTTP Header FieldRegistrations 中。

End-to-end 首部和 Hop-by-hop 首部

HTTP 首部字段將定義成緩存代理和非緩存代理的行爲,分紅 2 種類型。
端到端首部(End-to-end Header)
分在此類別中的首部會轉發給請求 / 響應對應的最終接收目標,且必須保存在由緩存生成的響應中,另外規定它必須被轉發。
逐跳首部(Hop-by-hop Header)
分在此類別中的首部只對單次轉發有效,會因經過緩存或代理而再也不轉發。HTTP/1.1 和以後版本中,若是要使用 hop-by-hop 首部,需提供 Connection 首部字段。

下面列舉了 HTTP/1.1 中的逐跳首部字段。除這 8 個首部字段以外,
其餘全部字段都屬於端到端首部。

  • Connection
  • Keep-Alive
  • Proxy-Authenticate
  • Proxy-Authorization
  • Trailer
  • TE
  • Transfer-Encoding
  • Upgrade
相關文章
相關標籤/搜索