四、請求首部欄位
請求首部欄位是由客戶端往服務器端發送請求報文匯總使用的欄位,用于補充請求的附加資訊、客戶端資訊、對回應內容相關的優先級等內容
1、Accept
Accept用于通知服務器,用戶代理能夠處理的媒體型別和媒體型別的優先級
可以使用type/subtype這種形式,一次指定多種媒體型別
下面是幾種常見的媒體型別:
- 文本檔案
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...
給媒體型別增加優先級:
可以使用q=來額外表示權重值,用分號(;)進行分隔,
權重q的范圍是0~1,且1是最大值,不指定權重q值時,默認權重q=1.0
當服務器可以提供多種內容時,會首先回傳權重值最高的媒體型別
2、Accept-Charset
通知服務器,用戶代理支持的字符集和字符集的優先順序,應用于內容協商機制的服務器驅動協商

3、Accept-Encoding
通知服務器,代理的內容編碼以及內容編碼的優先順序,另外也使用*作為通用符,指定任意的編碼格式
幾種內容編碼的例子:
- gzip
- cpmpress
- deflate
- identity
4、Accept-Language
通知服務器和代理能夠處理的自然語言(中文或英文) 以及自然語言的優先級

5、Authorization
通知服務器和代理的認證資訊,通常會先回傳401回應,然后客戶端在輸入認證資訊,瀏覽器將首部欄位Authorization欄位加入報文重新發給服務器,

6、Expect
告訴服務器期望出現的某種特定的行為,如果服務器無法理解客戶端的期望,會回傳狀態碼417 Expectation Failed,HTTP/1.1規定只定義了100-continue,(客戶端可以利用Expect寫明所期望的擴展)

7、From
告訴服務器使用用戶代理的用戶的電子郵件地址,
目的:顯示代理用戶的電子郵件聯系方式,
使用代理時,應盡可能包含From首部欄位(因代理不同,電子郵箱地址可能記錄在User-Agent首部欄位)

8、Host
虛擬主機運行在同一個ip上,因此用Host區分
Host欄位是唯一一個HTTP/1.1規定必須被包含在請求頭內的首部欄位
首部欄位會告訴服務器請求的資源所處的互聯網主機名和埠號(當服務器未設定主機名時,直接發送一個空值)

9、If-match
條件請求:使用首部 If-xxx 發出的請求,
當服務器接收條件請求時,只有條件為真才會執行請求,
只有If-matche的欄位和Etag的值一致時,服務器才接受,否則412 Precondition Failed


10、If-Modified-Since
在If-modify-Since欄位指定的時間之后資源更新,服務器會接受請求,否則回傳304 Not Modified

11、If-None-Match
If-None-Match欄位和Etag值不一樣時,可處理該請求

12、If-Range
指定的If-Range欄位值和請求資源一致時,會請求處理,反之回傳全體資源,
若不適用If-Range欄位,服務器會回傳304,然后客戶端再發請求,服務器才會回傳全體資源,

13、 If-Unmodified-Since
在If-Unmodify-Since欄位指定的時間之內資源更新,服務器會接受請求,否則回傳412 Precondition Failed
14、Max-Forwards
經過的服務器最大數目,,每經過一個服務器減1,當Max-Forward減到0時,請求不在轉發,直接回傳回應,
作用:可以了解以回傳的那臺服務器為終點,所經過的服務器通信情況,避免由于服務器轉發失敗導致客戶端沒有回應,

15、Proxy-Authorization
發生在客戶端與代理服務器之間的認證質詢,與Authorzation認證欄位相似(客戶端與服務器之間的認證質詢),
16、Range
獲取部分資源的范圍請求,若可以處理,回傳206 PratialContent,若不能處理,回傳200及全部資源,
17、Referfer
告知服務器請求的原始資源的URL

18、TE
告知服務器客戶端能夠處理回應的傳輸編碼方式以及相應優先級,與Accept-Ecoding功能類似,但是只用于傳輸編碼,
19、User-Agent
會將創建請求的瀏覽器和用戶代理名稱等資訊傳達給服務器
五、回應首部欄位
1、Accept-Ranges
告訴客戶端是否能處理范圍請求,獲取服務器某部分的資源,可以處理回傳byte,不能處理回傳none
2、Age
告訴客戶端,服務器在多久前創建了回應

3、Etage
告知客戶端物體標識
強Etage:無論物體發生多么細微的變化都會改變其值
弱Etage:提示資源是否相同,只有資源發生根本改變,才會改變其值,在最開始附加W/

4、Location
將回應接收方引導至某個請求URI位置不同的資源
瀏覽器接收這個欄位后會強制性地嘗試訪問重定向資源
5、Proxy-Authenticate
把代理服務器所要求的的認證資訊發送給客戶端
6、Retry-After
告訴客戶端多久后再次發請求
7、Server
告知客戶端當前服務器上安裝的HTTP服務器應用層程式的資訊,可能包括軟體應用名稱、版本號和安裝時啟動的可選項,
8、Vary
Vary可對快取進行控制,用于源服務器向代理服務器傳達關于本地快取使用方法的命令,
當代理服務器收到Vary首部欄位指定獲取資源的請求時,若Accept-Langusge請求值相同時,直接從快取讀取回應,否則先從源服務端獲取資源后才能作為回應回傳,
9、WWW-Authenticate
用于HTTP訪問認證
六、物體首部欄位
1、Allow
通知客戶端,它能夠支持的HTTP方法,若服務器不支持HTTP,則回傳405 Method Not Allowed并把所支持的方法寫入Allow
2、Content-Enconding
告知客戶端對物體部分內容編碼方式
3、Content-Language
告訴客戶端主體使用的自然語言
4、Content-Length
表明物體主體部分的大小
5、Content-Location
報文主體回傳資源對應的URI
6、Content-MD5
是一串由MD5演算法生成的值,用于檢查主體在傳輸程序中是否保存完整,以及確認傳輸到達,
7、Content-Range
告知客戶端作為回應回傳的物體的哪個部分范圍請求,欄位值以位元組為單位,表示當前發送部分及整個物體大小
8、Content-Type
物體主體內物件的媒體型別
9、Epires
將資源失效的日期告知客戶端,快取服務器在接收到含有Expires的回應后,會以快取回應請求,

10、Last-Modified
資源最后被修改的時間
七、為Cookie服務的首部欄位
Cookies的作業機制是用戶識別及狀態管理
將cookies臨時寫入計算機,呼叫cookies時驗證,有效期、域、路徑、協議等內容

1、Set-Cookie

expires屬性:瀏覽器可發送cookies的有效期,當expries省略,應用程式關閉cookies失效,cookies不能洗掉,只能覆寫
path屬性:指定cookies發送范圍的檔案目錄
domain屬性:通過cookies指定域名,不指定domain屬性更安全,
secure屬性:限制Web頁面僅在HTTPS安全連接時,才可以發送cookies,
Set-Cookie:name=vale;secure
HttpOnly屬性:使js腳本無法獲取cookies,防止XSS對cookies的資訊竊取
Set-Cookie:name=value;HttpOnly
2、Cookie
cookie:status=enable
請求中包含從服務器收到的cookie,可以是多個
八、其他首部欄位
1、X-Frame-Options
控制網站內容在其他web網站的frame標簽的顯示問題
X-Frame-Options:DENY (拒絕)
X-Frame-Options:SAMEORIGN (允許源域名下的頁面匹配)

2、X-XSS-Protection
是針對跨站腳本攻擊的一種對策,控制瀏覽器XSS防護機制的開關
0:將XSS過濾設定成無效狀態
1:將XSS過濾設定成有效狀態
3、DNT
拒絕個人資訊被收集,拒絕被精準廣告追蹤
0:統一被追蹤
1:拒絕被追蹤
4、P3P
目的:保護用戶隱私
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/238952.html
標籤:其他
