HTTP 實體首部字段(六)

實體首部字段

實體首部字段是包含在請求報文和響應報文中的實體部分所使用的首部,用于補充內容的更新時間等于實體相關的信息。

1. Allow

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

2. Content-Encoding

告知客戶端,服務器對實體的主體部分選用的內容編碼方式。內容編碼是指在不丟失實體信息的前提下所進行的壓縮。


其主要采用以下4中內容編碼的方式。
· gzip
· compress
· deflate
· identity

3. Content-Language

告知客戶端,實體主體使用的自然語言。
中文: zh-CN 。

4. Content-Length

表明了實體主體部分的大小。單位是字節。

5. Content-Location

給出報文與主體部分相對應的 URI 。

區別:與首部字段* Location 不同的是,其所指的 URI 是報文主題返回資源對應的 URI *。

6. Content-MD5

Content-MD5 是一串由 MD5 算法生成的值,其目的在于檢查報文主體在傳輸過程中是否保持完整,以及確認傳輸到達。

對報文主體執行 MD5 算法獲得的 128 位二進制數,再通過 Base64 編碼后將結果寫入 Content-MD5 字段值。由于 HTTP 首部無法記錄二進制值,所以要通過 Base64 編碼處理。為確保報文的有效性,作為接受方的客戶端會對報文主體在執行一次相同的 MD5 算法。計算出的值與字段值作比較后,即可判斷出報文主體的準確性。

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

Content-MD5

7.Content-Range

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

 Content-Range: bytes 5001 - 10000 / 10000 的意思如下圖所示
Content-Range

8. Content-Type

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

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

9. Expires

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

Expires 會將資源失效的日期告知客戶端。緩存服務器在接收到含有首部字段 Expires 的響應后,會以緩存來應答請求,在 Expires 字段值指定的時間之前,響應的副本會一直被保存。當超過指定的時間后,緩存服務器在請求發送過來時,會轉向源服務器請求資源。

源服務器不希望緩存服務器對資源緩存時,最好在 Expires 字段內寫入與首部字段 Date 相同的值。
但是,當首部字段 Cache-Control 有指定 max-age 指令時,比起首部字段 Expires ,會優先處理 max-age 指令

10. Last-Modified

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

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容