HTTP協議 HTTP實體首部

2021-08-20 20:46:51 字數 2136 閱讀 9077

有很多首部可以用來描述http報文的復合。由於請求和響應報文中都可能包含實體部分,所以在這兩種型別的報文中都可能出現這些首部。

首部欄位名

說明allow

資源可支援的http方法

content-encoding

實體主體使用的編碼方式

content-language

實體主體的自然語言

content-length

實體主體的大小(單位:位元組)

content-location

替代對應資源的uri

content-md5

實體主體的報文摘要

content-range

實體主體的位置範圍

contenr-type

實體主體的**型別

expires

實體主體過期的日期時間

last-modified

資源的最後修改日期時間

首部字段 allow 用於通知客戶端能夠支援 request-uri 指定資源的所有 http 方法。當伺服器接收到不支援的 http 方法時,會以狀態碼405 method not allowed 作為響應返回。與此同時,還會把所有能支援的 http 方法寫入首部字段 allow 後返回。

首部字段 content-encoding 會告知客戶端伺服器對實體的主體部分選用的內容編碼方式。內容編碼是指在不丟失實體資訊的前提下所進行的壓縮。

主要採用4 種內容編碼的方式:gzip、compress、deflate、identity

首部字段 content-language 會告知客戶端,實體主體使用的自然語言(指中文或英文等語言)。

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

首部字段 content-location 給出與報文主體部分相對應的 uri。和首部字段 location 不同,content-location 表示的是報文主體返回資源對應的 uri。

比如,對於使用首部字段 accept-language 的伺服器驅動型請求,當返回的頁面內容與實際請求的物件不同時,首部字段 content-location內會寫明 uri。(訪問 返回的物件卻是index-ja.html 等類似情況)

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

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

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

首部字段 content-type 說明了實體主體內物件的**型別。和首部字段 accept 一樣,欄位值用 type/subtype 形式賦值。引數 charset 使用 iso-8859-1 或 euc-jp 等字符集進行賦值。

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

源伺服器不希望快取伺服器對資源快取時,最好在 expires 欄位內寫入與首部字段 date 相同的時間值。但是,當首部字段 cache-control 有指定 max-age 指令時,比起首部字段 expires,會優先處理 max-age 指令。

首部字段 last-modified 指明資源最終修改的時間。一般來說,這個值就是 request-uri 指定資源被修改的時間。但類似使用 cgi 指令碼進行動態資料處理時,該值有可能會變成資料最終修改時的時間。

HTTP 實體首部字段

allow 通知客戶端能夠支援 request uri 指定資源的所有 http 方法 當伺服器接收到不支援的 http 方法時 會以狀態碼405 method not allowed 作為響應返回 還會把所有能支援的 http 方法寫入首部字段 allow 後返回content language ...

Http協議基礎之實體首部字段

實體首部欄位是包含在請求報文和響應報文中的實體部分所使用的首部,用於補充內容的更新時間等與實體相關的資訊。allow get,head 首部字段 allow 用於通知客戶端能夠支援 request uri 指定資源的所有 http 方法。當伺服器接收到不支援的 http 方法時,會以狀態碼 405 ...

HTTP協議 HTTP首部總結

首部和方法配合工作,共同決定了客戶端和伺服器能做什麼事情。http協議的請求和響應報文中必定含有http首部,首部內容為客戶端和伺服器分別處理請求和響應提供所需要的資訊,對客戶端使用者來說,這些資訊中的大部分內容都無須親自檢視,因此平時在使用web的過程中感受不到它。http請求報文由方法 uri ...