17 - 03 - 21 圖解HTTP(25)

Upgrade

通用首部字段Upgrade用於檢測HTTP協議及其他協議是否可使用更高的版本進行通信,

其參數值可以用來指定一個完全不同的通信協議。


上圖中,首部字段Upgrade指定的值爲TLS/1.0 。請注意此處兩個字段首部字段的對應關係,

Connection的值被指定爲Upgrade 。Upgrade首部字段產生作用的 Upgrade對象僅限於客戶端和鄰接服務器之間。

因此,使用首部字段Upgrade時,還需要額外指定Connection : Upgrade。

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

Via

通用首部字段Via是爲了追蹤客戶端與服務器之間的請求和響應報文的傳輸路徑。

報文經過代理或網關時,會先在首部字段 Via  中附加該服務器的信息,然後再進行轉發。

這個做法和traceroute及電子郵件的 Received首部的工作機制很類似。Via不僅用於追蹤報文的轉發,還可避免請求迴環的發生。

所以必須在經過代理時附加該首部字段內容。

下圖中,在經過代理服務器 A時,Via首部附加了“1.0gw.hackr.jp (Squid/3.1)”這樣的字符串值。行頭的1.0是指接收請求的服務器上應用的HTTP協議版本。接下來經過代理服務器B時亦是如此,在 Via首部附加服務器信息,也可增加1個新的Via首部寫入服務器信息。Via首部是爲了追蹤傳輸路徑,所以經常會和 TRACE  方法一起使用。比如,代理服務器接收到由TRACE方法發送過來的請求(其中 Max-Forwards: 0)時,代理服務器就不能再轉發該請求了。這種情況下,代理服務器會將自身的信息附加到 Via  首部後,返回該請求的響應。


 

Warning

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

Warning: 113 gw.hackr.jp:8080 "Heuristic expiration" Tue, 03 Jul 2012 05:09:44 GMT ----- ( 示例)

Warning  首部的格式如下:(最後的日期時間部分可省略)

Warning: [警告碼][警告的主機:端口號]“[警告內容]”([日期時間])

HTTP/1.1中定義了7種警告。警告碼對應的警告內容僅推薦參考。另外,警告碼具備擴展性,今後有可能追加新的警告碼。

 

一個警告表...: HTTP/1.1  警告碼:



警告碼 警告內容 說明
110 Response is stale (響應已過期) 代理返回已過期的資源
111 Revalidation failed (再驗證失敗)   代理再驗證資源有效性時失敗(服務器無法到達等原因)
112 Disconnection operation (斷開連接操作) 代理與互聯網連接被故意切斷
113 Heuristic expiration (試探性過期) 響應的使用期超過 24 小時(有效緩存的設定時間大於 24 小時的情況下)
199 Miscellaneous warning (雜項警告) 任意的警告內容
214 Transformation applied (使用了轉換) 代理對內容編碼或媒體類型等執行了某些處理時
299 Miscellaneous persistent warning (持久雜項警告) 任意的警告內容

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