6.6HTTP首部——實體首部字段

1.定義:

實體首部字段是包含在請求報文和響應報文中的實體部分所使用的首 部,用於補充內容的更新時間等與實體相關的信息。
在這裏插入圖片描述

2. Allow

在這裏插入圖片描述

Allow: GET, HEAD

首部字段allow用於通知客戶端能夠支持 Request-URI 指定資源的所 有 HTTP 方法。當服務器接收到不支持的 HTTP 方法時,會以狀態碼 405 Method Not Allowed 作爲響應返回給客戶端。
與此同時,還會把所有能支 持的 HTTP 方法寫入首部字段 Allow 後返回給客戶端。

3.Content-Encoding

Content-Encoding:gzip

首部字段 Content-Encoding 會告知客戶端服務器對實體的主體部分選 用的內容編碼方式。內容編碼是指在不丟失實體信息的前提下所進行 的壓縮。
在這裏插入圖片描述

主要採用以下四種內容編碼方式:

  • gzip
  • compress
  • defalte
  • identity

4.Content-Language

在這裏插入圖片描述

Content-Language: zh-CN

首部字段Content-Language:會告知客戶端,實體主體使用的自然語言,是英文還是中文。

5.Content-Length

在這裏插入圖片描述

Content-Length: 15000

首部字段 Content-Length 表明了實體主體部分的大小(單位是字 節)。對實體主體進行內容編碼傳輸時,不能再使用 Content-Length 首部字段。

6.Content-Location

Content-Location: http://www.hackr.jp/index-ja.html

首部字段 Content-Location 給出與報文主體部分相對應的 URI。和首 部字段 Location 不同,Content-Location 表示的是報文主體返回資源對 應的 URI
比如,對於使用首部字段 Accept-Language 的服務器驅動型請求,當 返回的頁面內容與實際請求的對象不同時,首部字段 Content-Location 內會寫明 URI。(訪問 http://www.hackr.jp/ 返回的對象卻是 http://www.hackr.jp/index-ja.html 等類似情況)

7.Content-MD5

在這裏插入圖片描述
圖:客戶端會對接收的報文主體執行相同的 MD5 算法,然後與首 部字段 Content-MD5 的字段值比較

Content-MD5: OGFkZDUwNGVhNGY3N2MxMDIwZmQ4NTBmY2IyTY==

首部字段 Content-MD5 是一串由 MD5 算法生成的值,其目的在於檢 查報文主體在傳輸過程中是否保持完整,以及確認傳輸到達。
對報文主體執行 MD5 算法獲得的 128 位二進制數,再通過 Base64 編 碼後將結果寫入 Content-MD5 字段值。由於 HTTP 首部無法記錄二進 制值,所以要通過 Base64 編碼處理。爲確保報文的有效性,作爲接 收方的客戶端會對報文主體再執行一次相同的 MD5 算法。計算出的值與字段值作比較後,即可判斷出報文主體的準確性。

採用這種方法,對內容上的偶發性改變是無從查證的,也無法檢測出 惡意篡改。其中一個原因在於,內容如果能夠被篡改,那麼同時意味 着 Content-MD5 也可重新計算然後被篡改。所以處在接收階段的客戶 端是無法意識到報文主體以及首部字段 Content-MD5 是已經被篡改過 的。

8.Content-Range

在這裏插入圖片描述

Content-Range: bytes 5001-10000/10000

針對客戶端的範圍請求,返回響應時使用的首部字段 Content-Range,能告知客 戶端作爲響應返回的實體的哪個部分符合範圍請求。字段值以字節爲 單位,表示當前發送部分及整個實體大小。

9.Content-Type

Content-Type: text/html; charset=UTF-8

首部字段 Content-Type 說明了實體主體內對象的媒體類型。和首部字 段 Accept 一樣,字段值用 type/subtype 形式賦值。
參數 charset 使用 iso-8859-1 或 euc-jp 等字符集進行賦值。

10.Expires

在這裏插入圖片描述

Expires: Wed, 04 Jul 2012 08:26:05 GMT

首部字段 Expires 會將資源失效的日期告知客戶端。緩存服務器在接 收到含有首部字段 Expires 的響應後,會以緩存來應答請求,在 Expires 字段值指定的時間之前,響應的副本會一直被保存。當超過 指定的時間後,緩存服務器在請求發送過來時,會轉向源服務器請求 資源。
源服務器不希望緩存服務器對資源緩存時,最好在 Expires 字段內寫 入與首部字段 Date 相同的時間值。
但是,當首部字段 Cache-Control 有指定 max-age 指令時,比起首部字 段 Expires,會優先處理 max-age 指令

11.Last-Modified

在這裏插入圖片描述

 Last-Modified: Wed, 23 May 2012 09:59:55 GMT

首部字段 Last-Modified 指明資源最終修改的時間。一般來說,這個 值就是 Request-URI 指定資源被修改的時間。但類似使用 CGI 腳本進 行動態數據處理時,該值有可能會變成數據最終修改時的時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章