通用首部字段詳解-四大首部字段之一

以前文章中簡介過http/1.1的通用首部字段《常見通用首部字段》,可是在那篇文章只是簡介一下,沒有具體解釋,很多小夥伴看完也是隻知其一;不知其二,接下來我們就看一下通用首部字段的詳解。緩存

因爲Cache-Control 比較特殊,會在《Cache-Control 用法》,今天就不在這講解了服務器

1 Connection post

Connection 有兩個做用。編碼

  • 控制再也不轉發給代理的首部字段
  • 管理持及鏈接

控制不在轉發給代理的首部字,看圖3d


控制持久鏈接,看圖代理


http/1.1版本的默認鏈接都是持久鏈接。爲此,客戶端會持久鏈接上持續發送請求,當服務器端想明確斷開時,則指定Connect 首部字段值爲Closecdn


2 date對象

首部通用字段Date代表建立http報文的日期和時間。blog

3 Pragma報文指令資源

pragma是http/1.1 以前版本的歷史遺留字段,僅做爲與http/1.0的向後兼容而定義。

規範定義的形式惟一

Pragma:no-cache

該首部字段雖然屬於通用字段,但只用於客戶端送請求中。客戶端能夠要求全部的中間服務器不返回緩存的資源。


全部的中間服務器若是都是以http/1.1爲基準,那麼直接採用Cache-Control:no-cache指定不走緩存最爲理想。但要總體掌控所有中間服務器使用http協議版本是不現實的,所以,發送請求時會同時包含下面兩個首部字段

Cache-Control:no-cache

Pragma:no-cache

4 Trailer 報文末端一覽,看圖

首部字段Trailer會事先說明在報文主體後記錄了那些首部字段。該首部字段可應用在HTTP/1.1版本分塊傳輸編碼時



5 Transfer-Encoding 報文主體傳輸編碼,看圖



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

http/1.1的傳輸隨編碼方式近對分塊傳輸編碼有效


圖中的用例,首部字段Transfer-Encoding中指定的那樣,有效使用分塊傳輸編碼,且分別被分紅3312字節和914字節大小的分塊數據


6 Upgrade 協議升級

首部字段 Upgrade用於檢測http協議及其餘協議是否可以使用更高的版本進行通訊,其參數值能夠用來指定一個徹底不一樣的通訊協議

上圖用例中,首部字段 Upgrade 指定的值爲 TLS/1.0。請注意此處兩 個字段首部字段的對應關係,Connection 的值被指定爲 Upgrade。 Upgrade 首部字段產生做用的 Upgrade 對象僅限於客戶端和鄰接服務 器之間。所以,使用首部字段 Upgrade 時,還須要額外指定 Connection:Upgrade。

對於附有首部字段 Upgrade 的請求,服務器可用 101 Switching Protocols 狀態碼做爲響應返回。

7 Via 代理服務器信息

via首部字段主要是用於記錄客戶端和中轉服務器之間路徑的記錄。首部字段Via不只用於記錄報文轉發路徑還能夠避免請求迴環的發生,因此必須在通過的代理上附加首部字段。

8 Wraning 警告信或者錯誤信息

HTTP/1.1 的 Warning 首部是從 HTTP/1.0 的響應首部(Retry-After)演 變過來的。該首部一般會告知用戶一些與緩存相關的問題的警告。

相關文章
相關標籤/搜索