【HTTP】HTTP報文首部之通用首部詳解
阿新 • • 發佈:2018-12-02
這篇文章,單獨來講講HTTP/1.1通用首部欄位的內容:
控制快取的行為,可用於請求及響應時.
快取請求指令:
指令 | 引數 | 說明 |
---|---|---|
no-cache | 無 | 強制向源伺服器再次驗證 |
no-store | 無 | 使用該指令時,暗示請求中包含機密資訊.故該指令規定快取不能在本地儲存請求的任一部分 |
max-age=[秒] | 必須 | 響應的最大Age值 |
max-stale(=[秒]) | 可省略 | 可指示快取資源,如果指令未指定引數值,無論過多久,都會接收響應;若指定了具體數值,即使過期,只要仍處於max-stale指定的時間內,仍舊會被客戶端接收 |
min-fresh=[秒] | 必須 | 期望在指定時間內的響應仍有效 |
no-transform | 無 | 代理不可更改媒體型別 |
only-if-cached | 無 | 該指令要求快取伺服器不重新載入效應,也不會再次確認資源有效性.若發生請求快取伺服器的本地快取無響應,則會返回狀態碼504 Gateway Time-out |
cache-extension | - | 新指令標記(token) |
快取響應指令:
指令 | 引數 | 說明 |
---|---|---|
public | 無 | 可向任意方提供響應的快取 |
private | 可省略 | 僅向特定使用者返回響應 |
no-cache | 無 | 快取前必須先確認其有效性 |
no-store | 無 | 使用該指令時,暗示響應中包含機密資訊.故該指令規定快取不能在本地儲存響應的任一部分 |
no-transform | 無 | 代理不可更改媒體型別 |
must-revalidate | 無 | 代理會向源伺服器再次驗證即將返回的響應快取目前是否仍然有效,若代理無法連線源伺服器再次獲取有效資源時,快取必須給客戶端一條504狀態碼 |
proxy-revalidate | 無 | 中間快取伺服器對快取的響應有效性再進行確認 |
max-age=[秒] | 必須 | 響應的最大Age值 |
s-maxage=[秒] | 必須 | 公共快取伺服器響應的最大Age值.只適用於供多位使用者使用的公共快取伺服器,對於向同一使用者重複返回響應的伺服器來說,這個指令沒有任何作用 |
cache-extension | - | 新指令標記(token) |
控制不再轉發給代理的首部欄位:
用法:Connection:不再轉發的首部欄位名
表明建立HTTP報文的日期和時間
HTTP/1.1之前版本的歷史遺留欄位,僅作為與HTTP/1.0的向後相容定義
用法:Pragma:no-cache
該首部欄位屬於通用首部欄位,但只用在客戶端傳送的請求中.所有的中間伺服器如果都能以HTTP/1.1為基準,直接採用Cache-Control:no-cache即可,但是不現實,所以傳送的請求中會同時含有以下兩個首部欄位:Cache-Control:no-cache和Pragma:no-cache
事先說明在報文主體後記錄了哪兒些首部欄位.可應用在HTTP/1.1版本分塊傳輸編碼時
規定了傳輸報文主體時採用的編碼方式,僅對分塊傳輸編碼有效
用於檢測HTTP協議及其他協議是否可使用更高的版本進行通訊
追蹤客戶端與伺服器之間的請求和響應報文的傳輸路徑
通常告知使用者一些與快取相關問題的警告.格式如下:
Warning: [警告碼] [警告的主機:埠號] “[警告內容]” ([日期時間])
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(持久雜項警告) | 任意的警告內容 |
HTTP報文首部之通用首部詳解到此結束,感謝您的閱讀~
最後,祝每一位改變世界的程式設計師,節日快樂~