6.4 HTTP首部——請求首部字段

請求首部字段是從客戶端往服務器端發送請求報文中所使用的字段, 用於補充請求的附加信息、客戶端信息、對響應內容相關的優先級等 內容。
在這裏插入圖片描述

1.Accept

在這裏插入圖片描述

Accept: text/html,application/xhtml+xml,application/xml;q=0.

Accept 首部字段可通知服務器,用戶代理能夠處理的媒體類型及媒體 類型的相對優先級。可使用 type/subtype 這種形式,一次指定多種媒 體類型。
在這裏插入圖片描述
比如,如果瀏覽器不支持 PNG 圖片的顯示,那 Accept 就不指定 image/png,而指定可處理的 image/gif 和 image/jpeg 等圖片類型。 若想要給顯示的媒體類型增加優先級,則使用 q= 來額外表示權重值 1,用分號(;)進行分隔。權重值 q 的範圍是 0~1(可精確到小數點 後 3 位),且 1 爲最大值。不指定權重 q 值時,默認權重爲 q=1.0。

2.Accept-Charset

在這裏插入圖片描述

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

Accept-Charset 首部字段可用來通知服務器用戶代理支持的字符集及 字符集的相對優先順序。另外,可一次性指定多種字符集。與首部字 段 Accept 相同的是可用權重 q 值來表示相對優先級。 該首部字段應用於內容協商機制的服務器驅動協商。

3. Accept-Encoding

在這裏插入圖片描述

Accept-Encoding: gzip, deflate

Accept-Encoding 首部字段用來告知服務器用戶代理支持的內容編碼及 內容編碼的優先級順序。可一次性指定多種內容編碼。
下面試舉出幾個內容編碼的例子。
在這裏插入圖片描述
採用權重 q 值來表示相對優先級,這點與首部字段 Accept 相同。另 外,也可使用星號(*)作爲通配符,指定任意的編碼格式。

4 Accept-Language

在這裏插入圖片描述

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

首部字段 Accept-Language 用來告知服務器用戶代理能夠處理的自然 語言集(指中文或英文等),以及自然語言集的相對優先級。可一次 指定多種自然語言集。
和 Accept 首部字段一樣,按權重值 q 來表示相對優先級。在上述圖 例中,客戶端在服務器有中文版資源的情況下,會請求其返回中文版 對應的響應,沒有中文版時,則請求返回英文版響應。

5. Authorization

在這裏插入圖片描述

Authorization: Basic dWVub3NlbjpwYXNzd29yZA==

首部字段 Authorization 是用來告知服務器,用戶代理的認證信息(證 書值)。通常,想要通過服務器認證的用戶代理會在接收到返回的 401 狀態碼響應後,把首部字段 Authorization 加入請求中。共用緩存 在接收到含有 Authorization 首部字段的請求時的操作處理會略有差 異。

6.Expect

在這裏插入圖片描述
客戶端使用首部字段 Expect 來告知服務器,期望出現的某種特定行 爲。因服務器無法理解客戶端的期望作出迴應而發生錯誤時,會返回 狀態碼 417 Expectation Failed。
客戶端可以利用該首部字段,寫明所期望的擴展。雖然 HTTP/1.1 規 範只定義了 100-continue(狀態碼 100 Continue 之意)。
等待狀態碼 100 響應的客戶端在發生請求時,需要指定 Expect:100- continue

7.From

在這裏插入圖片描述
首部字段 From 用來告知服務器使用用戶代理的用戶的電子郵件地 址。通常,其使用目的就是爲了顯示搜索引擎等用戶代理的負責人的 電子郵件聯繫方式。使用代理時,應儘可能包含 From 首部字段(但 可能會因代理不同,將電子郵件地址記錄在 User-Agent 首部字段 內)。

8.Host

在這裏插入圖片描述
圖:虛擬主機運行在同一個 IP 上,因此使用首部字段 Host 加以 區分

Host: www.hackr.jp

首部字段 Host 會告知服務器,請求的資源所處的互聯網主機名和端 口號。Host 首部字段在 HTTP/1.1 規範內是唯一一個必須被包含在請 求內的首部字段。 首部字段 Host 和以單臺服務器分配多個域名的虛擬主機的工作機制 有很密切的關聯,這是首部字段 Host 必須存在的意義。 請求被髮送至服務器時,請求中的主機名會用 IP 地址直接替換解 決。但如果這時,相同的 IP 地址下部署運行着多個域名,那麼服務 器就會無法理解究竟是哪個域名對應的請求。因此,就需要使用首部 字段 Host 來明確指出請求的主機名。若服務器未設定主機名,那直 接發送一個空值即可。如下所示。

Host:

9.User-Agent

在這裏插入圖片描述
圖:User-Agent 用於傳達瀏覽器的種類

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gec

首部字段 User-Agent 會將創建請求的瀏覽器和用戶代理名稱等信息傳 達給服務器。
由網絡爬蟲發起請求時,有可能會在字段內添加爬蟲作者的電子郵件 地址。此外,如果請求經過代理,那麼中間也很可能被添加上代理服 務器的名稱。

10.Referer

在這裏插入圖片描述

Referer: http://www.hackr.jp/index.htm

首部字段 Referer 會告知服務器請求的原始資源的 URI。
客戶端一般都會發送 Referer 首部字段給服務器。但當直接在瀏覽器 的地址欄輸入 URI,或出於安全性的考慮時,也可以不發送該首部字 段。
因爲原始資源的 URI 中的查詢字符串可能含有 ID 和密碼等保密信 息,要是寫進 Referer 轉發給其他服務器,則有可能導致保密信息的 泄露。
另外,Referer 的正確的拼寫應該是 Referrer,但不知爲何,大家一直 沿用這個錯誤的拼寫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章