《圖解HTTP》學習筆記(六)-HTTP首部

NO IMAGE

1、HTTP 報文首部

HTTP 協議的請求和響應報文中必定包含 HTTP 首部。首部內容為客戶端和伺服器分別處理請求和響應提供所需要的資訊

1)HTTP請求報文:在請求中,HTTP報文由方法、URI、HTTP版本、HTTP首部欄位等部分組成
這裡寫圖片描述

2)HTTP響應報文:在響應中,HTTP報文由HTTP版本、狀態碼(數字和原因短語)、HTTP首部欄位3部分組成
這裡寫圖片描述

在報文眾多的欄位當中,HTTP 首部欄位包含的資訊最為豐富。首部欄位同時存在於請求和響應報文內,並涵蓋 HTTP 報文相關的內容資訊。

2、HTTP首部欄位

1、概述:

在客戶端與伺服器之間以 HTTP 協議進行通訊的過程中,無論是請求還是響應都會使用首部欄位,它能起到傳遞額外重要資訊的作用

使用首部欄位是為了給瀏覽器和伺服器提供報文主體大小、所使用的語言、認證資訊等內容

HTTP 首部欄位是由首部欄位名和欄位值構成的,中間用冒號“:” 分隔。

首部欄位名: 欄位值

例如,在 HTTP 首部中以 Content-T y pe 這個欄位來表示報文主體的物件型別。

Content-Type: text/html

2、4 種 HTTP 首部欄位型別:

1)通用首部欄位(General Header Fields)
請求報文和響應報文兩方都會使用的首部。

2)請求首部欄位(Request Header Fields)
從客戶端向伺服器端傳送請求報文時使用的首部。補充了請求的附加內容、客戶端資訊、響應內容相關優先順序等資訊

3)響應首部欄位(Response Header Fields)
從伺服器端向客戶端返回響應報文時使用的首部。補充了響應的附加內容,也會要求客戶端附加額外的內容資訊。

4)實體首部欄位(Entity Header Fields)
針對請求報文和響應報文的實體部分使用的首部。補充了資源內容更新時間等與實體有關的資訊。

3、End-to-end首部和Hop-by-hop首部

HTTP 首部欄位將定義成快取代理和非快取代理的行為,分成 2 種型別。

1)端到端首部(End-to-end Header)
分在此類別中的首部會轉發給請求 / 響應對應的最終接收目標,且必須儲存在由快取生成的響應中,另外規定它必須被轉發。

2)逐跳首部(Hop-by -hop Header)
分在此類別中的首部只對單次轉發有效,會因通過快取或代理而不再轉發。HTTP/1.1 和之後版本中,如果要使用 hop-by-hop 首部,需提供 Connection 首部欄位。
下面列舉了 HTTP/1.1 中的逐跳首部欄位。除這 8 個首部欄位之外,其他所有欄位都屬於端到端首部。

Connection
Keep-A live
Proxy -A uthenticate
Proxy -A uthorization
Trailer
TE
Transfer-Encoding
Upgrade

3、HTTP1.1通用首部欄位

通用首部欄位是指,請求報文和響應報文雙方都會使用的首部。包含欄位及作用如下:

1)Cache-Control:通過指定首部Cache-Control的指令,就可以操作快取的工作機制。如no-cache,public等。首部欄位 Cache-Control 能夠控制快取的行為。

2)Connection:主要有兩個作用,控制不再轉發給代理的首部欄位、管理持久連線。

3)Data:首部欄位data表明建立HTTP報文和日期。

4)pragma :報文指令。與http1.1之前的版本相容

5)Trailer:首部欄位Trailer會事先說明在報文主體後記錄了哪些首部欄位,可以應用在HTTP1.1版本分塊傳輸編碼時使用。

6)Transfer-Encoding:規定了傳輸報文主體時採用的編碼方式

7)Upgrade:用於檢測HTTP協議及其他協議是否可以使用更高版本進行通訊

8)Via :追蹤客戶端與伺服器之間的請求響應和響應報文的傳輸途徑。還可以避免請求迴環的發生。

9)Warning:告知使用者一些與快取相關問題的警告

4、請求首部欄位

請求首部欄位是從客戶端往伺服器端傳送請求報文中所使用的欄位,用於補充請求的附加資訊、客戶端資訊、對響應內容相關優先順序等內容

5、響應首部欄位

響應首部欄位是由伺服器向客戶端返回響應報文中所使用的欄位,用於補充響應的附加資訊、伺服器資訊,以及對客戶端的附加要求等資訊。

6、實體首部欄位

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

7、為Cookie服務的首部欄位

1)機制:

Cookie的工作機制是使用者識別及狀態管理。web網站為了管理使用者的狀態會通過web瀏覽器把一些資料臨時寫入使用者計算機內。接著當使用者訪問web網站時,可以通過通訊方式取回之前傳送的Cookie。

呼叫Cookie時,由於可校驗Cookie的有效期,以及傳送方的域、路徑、協議等資訊,所以正規釋出的Cookie內的資料不會因來自其他 Web 站點和攻擊者的攻擊而洩露。

2)為Cookie服務的首部欄位

   欄位                  作用                 首部型別
Set-Cookie  開始狀態管理所使用的Cookie資訊    響應首部欄位
Cookie      伺服器接收到的Cookie資訊         請求首部欄位

3)Set-Cookie
這裡寫圖片描述

4)Cookie

Cookie: status=enable

首部欄位Cookie會告知伺服器,當客戶端想獲得HTTP狀態管理支援時,就會在請求包中包含從伺服器接收到的Cookie。接收多個Cookie時,同樣可以以多個Cookie形式傳送