http協議(八)請求首部字段


請求首部字段

定義:請求首部字段是從客戶端到服務器發送請求報文中所使用的字段,里面包含了附加信息、客戶端信息以及對響應內容相關的優先級等內容

1、Accept

通知服務器用戶代理可處理的媒體類型及媒體類型的相對優先級,可使用type/subtype這種形式,一次指定多種媒體類型

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

q表示權重,默認值為1.0,當服務器提供多種內容時,將會有優先返回權重值最高的媒體類型

下面舉幾個例子:

文本文件:

text/html,text/plain,text/css...

application/xhtml+xml,application/xml...

圖片文件:

image/jpeg,image/gif,image/png...

視頻文件:

video/mpeg,video/quicktime...

應用程序使用的二進制文件

application/octet-stream,application/zip...

 

2、Accept-Cherset

通知服務器用戶代理支持的字符集及字符集的相對優先級,可一次性指定多個字符集。

該首部字段可用權重q值來表示相對優先級

該首部字段應用於內容協商機制的服務器驅動協商

Accept-Charset: iso-8859-5, unicode-1-1;q=0.8

 

3、Accept-Encoding

告知服務器用戶代理支持的內容編碼及內容編碼優先級順序,可一次性指定多種內容編碼

Accept-Encoding: gzip, deflate

常用的幾種編碼格式:

gizp:由文件壓縮程序gzip(GUN zip)生成的編碼格式

compress:由UNIX文件壓縮程序compress生成的編碼格式

deflate:組合使用zlib格式及由deflate壓縮格式生成的編碼格式

jdentity:不執行壓縮或不會變化的默認編碼格式

同樣,這里可以使用q值表示相對優先級,也可以使用(*)作為通配符,指定任意的編碼格式

 

4、Accept-Lanuage

告知服務器用戶代理能夠處理的自然語言集,以及其相對有限集,可一次指定多種自然語言集

同樣可使用權重值q表示相對優先級

Accept-Lanuage: zh-cn,zh;q=0.7,en=us,en;q=0.3

 

5、Authorization

告知服務器用戶代理的認證信息(證書值)。

通常想要通過驗證的用戶代理會在接受到第一次返回的401狀態碼響應后,把首部字段加入請求中,共用緩存接收到含有該字段的請求時操作處理會有所差異

 

6、Expect

客戶端使用該字段告知服務器,期望出現某種特定行為

如果服務器無法理解期望作出回應而發生錯誤,會返回狀態碼417Expect Failed,客戶端可以利用該字段,寫明所期望的擴展

http/1.1規范值定義了100-continue(轉台嗎100Continue之意)

Expect: 100-continue

 

7、From

告知服務器使用用戶代理的用戶墊子郵件地址

目的:顯示搜索引擎等用戶代理的負責人的電子郵件聯系方式 

From: IMyalost@163.com

 

8、Host

告知服務器請求的資源所處的互聯網主機名和端口號

Host首部字段是在HTTP/1.1規范內唯一一個必須被包含在請求內的首部字段

Host: www.baidu.com

 

9、If-Match

格式如If-xxx這樣的請求首部字段,都可以稱之為條件請求,服務器收到請求,只有判定條件為真時,才會執行請求

該字段告知服務器匹配資源所用的實體標記(ETag)值,這時無法使用弱ETag值

如果判斷條件不為真,則返回412Precondition Failed響應

還可以使用(*)指定If-Match的字段值,這種情況下服務器將忽略ETag值,只要資源存在就處理請求

If-Match: "123456"

 

10、If-Modified-Since

條件請求,告知服務器若字段指定值早於資源更新時間,則希望能處理請求,如果在該字段指定的日期時間大於資源更新時間,則返回304Not Modified響應

用於確認代理或者客戶端擁有的本地資源的有消息

If-Modified-Since: Thu, 15 Apr 2004 00:00:00 GMT

 

11、If-None-Match

條件請求,和If-Match作用相反。當該字段值的實體標記(ETag)值與請求資源的ETag不一致時,告知服務器處理該請求

在GET或HEAD方法中使用該字段可獲取最新的資源

 

12、If-Range

條件請求,告知服務器若指定的值和請求資源的值一致,則作為范圍請求處理,反之,則返回全部資源

request:                                                   response:

GET /index.html                                         206 Partial Content

If-Range: "123456"                                    Content-Range: bytes 5001-10000/10000

Range: bytes=5001-10000                        Content-Length:5000

上面的請求和資源匹配一致,那么久作為范圍請求處理

 

13、If-Unmodified-Since

條件請求,該字段和If-Unmodified-Since字段作用相反,作用是告知服務器,指定的請求資源只有在字段值內指定的日期之后,未發生更新的情況下,才能處理請求。

如指定時間之后發生更新,則返回412 Precondition  Failed作為響應返回

If-Unmodified-Since: Thu, 03 Jul 2016 00:00:00 GMT

 

14、Max-Forwards

我們都知道使用http協議通信時,請求可能會經過代理等多台服務器,如果由於某些原因導致請求轉發失敗,那么客戶端收不到響應,我們對此一無所知

通過TRACE或者OPTIONS方法,發送包含該字段的請求時,該字段以十進制整數形式指定可經過的服務器最大數目

簡單來講,就是指定Max-Forwards的值,每經過一次轉發,就-1.當值變為0.直接返回響應

Max-Forwards: 10

 

15、Proxy-Authorization

收到代理服務器發來的認證質詢時,客戶端向代理服務器發送包含首部字段的請求,以告知服務器所需要的認證的信息

Proxy-Authorization: Basic dGLwoPNLAGKGFY5

 

16、Range

對於只需獲取部分資源的范圍請求,包含首部字段Range即可告知服務器資源的指定范圍

接收到附帶Range字段的服務器,會返回206Partial Content的響應;無法處理請求時,則返回200 OK的響應及全部資源

Range: bytes=5001-10000

 

17、Referer

告知服務器請求的原始資源的URI

Referer:www,baidu.com/index.xml

 

18、TE

告知服務器客戶端能夠處理響應的傳輸編碼方式及相對優先級

TE:gzip, deflate;q=0.5

該字段還可以指定伴隨trailer字段的分塊傳輸編碼的方式

TE:trailers

 

19、User-Agent

該字段會將創建請求的瀏覽器和用戶代理名稱等信息傳給服務器

如果由網絡爬蟲發起請求,可能會在請求中添加爬蟲作者的墊子郵件地址。因此,如果請求經過代理,那么中間也很可能被添加上代理服務器名稱

User-Agent: Mozilla/5.0 (windows NT 6.1; WOW64; rv13.0) Gecko/=20100101 Firfox/13.0.1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM