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

2021-08-17 19:01:25 字數 3369 閱讀 5119

一、請求首部字段

accept首部可通知伺服器,使用者**能夠處理的**型別及**型別的相對優先順序

用來通知伺服器使用者**支援的字符集及字符集的相對優先順序

accept-charset: iso-8859-5,unicode-1-1;q=0.8

用來告知伺服器使用者**支援的內容編碼及內容編碼的優先順序順序

accept-encoding:gzip,deflate

告知伺服器使用者**支援的自然語言集及自然語言集的優先順序

accept-language:zh-cn,zh;q=0.7,en-us,en;q=0.3

告知伺服器使用者**的認證資訊,通常,想要通過伺服器認證的使用者**在接收到返回的401狀態碼響應後,把首部欄位authorization加入到請求中。

authorization:basic dwvub........

客戶端使用首部欄位expect欄位來告知伺服器,期待出現的某種特定行為

等待狀態碼100響應的客戶端在發生請求時,需要指定expect: 100-continue

expect: 100-continue

用來告知伺服器使用使用者**的使用者的電子郵件位址

form:2294***

[email protected]

用來告知伺服器,請求的資源所在的網際網路主機名和埠號,host首部欄位在http/1.1規範內唯一乙個必須包含在請求內的首部字段

host:www.hacker.jp

形如if-***這種樣式的請求首部字段,都可稱為條件請求,伺服器接收到附帶條件的請求後,只有判斷指定條件為真時,才會執行請求,伺服器會比對if-match的字段值和資源的etag值,僅當兩者一致時,才會執行請求。

if-match:「123456」

首部欄位if-modified-since,屬附帶條件之一,會告知伺服器若if-modified-since字段值早於資源的更新時間,則希望能處理該請求。而在指定if-modified-since字段值的日期之後,如果請求的資源都沒有過更新,則返回狀態碼304 not modified的響應。

首部欄位if-none-match屬於附帶條件之一,它和首部欄位if-match作用相反,用於指定if-none-match字段值的實體標記(etag)值與請求資源的etag不一致時,就告知伺服器處理該請求,可獲得最新的資源。

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

get /index.html

if-range:"123456"

range: bytes=5001-10000

首部欄位if-unmodified-since和首部欄位if-modified-since的作用相反,它的作用是告知伺服器,指定的請求資源只有在字段內指定的日期之後,未發生更新的情況下,才能處理請求。如果在指定日期後發生了更新,則以狀態碼412 precondition failed作為響應返回

if-unmodified-since: thu, 03 jul 2012 00:00:00 gmt

通過trace方法或options方法,傳送包含首部欄位max-forwards的請求時,該字段以十進位制整數形式指定可經過的伺服器最大數目。伺服器在往下乙個伺服器**請求之前,會將max-forwards的值減1後重新賦值、當伺服器接收到max-forwards值為0的請求時,則不再進行**,而是直接返回響應。

max-forwards:10

接收到**伺服器發來的認證質疑時,客戶端會傳送包含首部欄位proxy-authorization的請求,以告知伺服器認證所需要的資訊。

這個行為是與客戶端和伺服器之間的http訪問認證相類似的,不同之處在於,認證行為發生在客戶端與**之間,客戶端與伺服器之間的認證,使用首部欄位authorization可起到相同作用。

對於只獲取部分資源的範圍請求,包含首部欄位range即可告知伺服器資源的指定範圍。接收到附帶range首部字段請求的伺服器,會在處理請求之後返回狀態碼為206 partial content的響應,無法處理該範圍請求時,則會返回狀態碼200 ok的響應及全部字段。

range:bytes=5001-10000

首部欄位referer會告知伺服器請求的原始資源的uri

referer:

首部欄位te會告知伺服器客戶端能夠處理響應的傳輸編碼方式及相對優先順序,它和首部欄位accept-encoding的功能很相像,但是用於傳輸編碼。

te:gzip,deflate;q=0.5

首部欄位user-agent會將建立請求的瀏覽器和使用者**名稱等資訊傳達給伺服器

user-agent:mozilla/5.0 (windows nt 6.1; wow64;rv:13.0) gecko/=>20100101 firefox/13.0.1

實體首部欄位是包含在請求報文和響應報文中的實體部分所使用的首部,用於補充內容的更新時間等與實體相關的資訊。

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

如:allow:get,head

首部欄位content-encoding會告知伺服器對實體的主體部分選用的內容編碼方式。有gzip、compress、deflate、identity

如:content-encoding:gzip

content-language會告知客戶端,實體主體所使用的自然語言

如:content-language:zh-cn

content-length表明了實體主體部分的大小,單位是位元組

如:content-length:15000

content-location給出與報文主體部分相對應的uri

如:content-location:

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

如:content-md5:*******

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

如:content-range:bytes 5001-10000/10000

說明實體主體內物件的**型別

如:content-type:text/html; charset=utf-8

將資源失效的日期告訴客戶端

如:expires:wed,04 jul 2012 08:26:05 gmt

指明資源最終修改的時間

如:last-modified:wed,04 jul 2012 08:26:05 gmt

Http首部字段

熟悉http首部欄位對web開發非常重要,尤其在分析和解決問題時往往可以達到事半功倍效果.http首部字段根據實際用途被分為以下4中型別 1 通用首部字段 請求報文和響應報文兩方都會使用的首部.2 請求首部字段3 響應首部字段 從伺服器端向客戶端返回報文時使用的首部.補充了響應的附加內容,也會要求客...

HTTP首部字段

請求報文和響應報文兩方都會使用的首部。從伺服器端向客戶端返回報文時使用的首部。補充了響應的附加內容,也會要求客戶端附加額外的內容資訊。針對請求報文和響應報文的實體部分使用的首部。補充了資源內容更新時間等與實體有關的資訊。首部欄位名 說明 cache control 控制快取的行為 connectio...

HTTP首部字段

http首部由首部欄位名和首部字段值組成,以逗號隔開。如果首部出現重複,有些瀏覽器優先處理第乙個出現的首部,有些優先處理後者。主要分為四大類 通用首部字段 請求首部字段 響應首部字段 實體首部字段 首部欄位名 說明cache control 控制快取 connection 逐跳首部,用於連線的管理 ...