HTTP請求首部字段詳解(二)

2021-08-28 08:58:43 字數 1637 閱讀 3250

請求首部字段是從客戶端向伺服器端傳送請求報文中所需要使用的字段。它用來補充請求的附加資訊、客戶端資訊、對相應內容相關的優先順序等。

本文詳細講解以下請求首部字段:except、from、host、if-match、if-modified-since、if-none-match、if-range和 if-unmodified-since 。

except

客戶端首先使用except欄位來告知伺服器,期望出現某種特殊行為,因伺服器無法理解客戶端的期望作出回應而發生錯誤時,會返回狀態碼 417 expectation failed。 

客戶端可以使用該字段來寫明所期望的拓展,雖然http/1.1規定只定義了100-continue(狀態碼100 continue)之意。等待狀態碼 100 響應的客戶端在發生請求時,需要指定 expect:100continue。

from

該首部字段用以告知伺服器使用**的使用者的電子郵箱位址。通常情況下是為了顯示搜尋引擎等使用者**的負責人的****。

使用**時應該盡可能標明該欄位,但是有些**不同,可能會在user-agent欄位標明負責人的****。

host

該首部欄位會告知伺服器所請求的資源所處網際網路主機名和埠號。該字段是http/1.1明確規定必須包含在請求內的首部字段。

當多台虛擬主機共享乙個ip位址時,使用該字段就可以加以區分,這就是host欄位的存在的意義。

若伺服器未設定主機名,那直 接傳送乙個空值即可。如下所示:

if-match

形如 if-*** 這種樣式的請求首部字段,都可稱為條件請求。伺服器接收到附帶條件的請求後,只有判斷指定條件為真時,才會執行請求。

首部字段 if-match,屬附帶條件之一,它會告知伺服器匹配資源所用的實體標記(etag)值。伺服器會比對 if-match 的字段值和資源的 etag 值僅當兩者一致時,才會執行請求。反之,則返回狀態碼 412 precondition failed 的響應。

還可以使用星號(*)指定 if-match 的字段值。針對這種情況,伺服器將會忽略 etag 的值,只要資源存在就處理請求。

if-modified-since

如果在 if-modified-since 字段指定的日期時間後,資源發生了 更新,伺服器會接受請求。

該欄位用於確認**或者客戶擁有的本地資源的有效性。獲取資源的更新日期時間,可通過確認首部字段 last-modified 來確定。

if-not-match

和if-match不同,該字段的作用是當請求資源的etag和本欄位指定的值不同時,才返回請求的資源。

在get方法或者head方法中,使用本欄位可以幫助獲取最新資源。這和if-modified-since的作用相似 。

if-range

該首部字段屬於附帶條件之一。它可以告知伺服器如果 if-range 字段值(etag 值或者時間)和請求資源的 etag 值或時間相一 致時,則作為範圍請求處理。反之,則返回全體資源。

if-unmodified-since

該首部字段用於告知伺服器,若指定的資源在該字段指定的日期之後沒有更新,則伺服器處理請求,否則伺服器返回412precondition failed 作為響應返回。

HTTP請求首部字段詳解(三)

請求首部字段是從客戶端向伺服器端傳送請求報文中所需要使用的字段。它用來補充請求的附加資訊 客戶端資訊 對相應內容相關的優先順序等。1 max forwards 通過trace或者options方法傳送請求時,通過在該字段指定十進位制數字來指定最多可經過的伺服器數目。伺服器在往下乙個伺服器傳送請求的過...

HTTP請求首部欄位與響應首部字段

一 請求首部字段 accept首部可通知伺服器,使用者 能夠處理的 型別及 型別的相對優先順序 用來通知伺服器使用者 支援的字符集及字符集的相對優先順序 accept charset iso 8859 5,unicode 1 1 q 0.8 用來告知伺服器使用者 支援的內容編碼及內容編碼的優先順序順...

HTTP 實體首部字段詳解

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