1. 程式人生 > >【HTTP】HTTP報文首部之通用首部詳解

【HTTP】HTTP報文首部之通用首部詳解

這篇文章,單獨來講講HTTP/1.1通用首部欄位的內容:

  • Cache-Control
  • 控制快取的行為,可用於請求及響應時.
    快取請求指令:

    指令 引數 說明
    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
  • 控制不再轉發給代理的首部欄位:
    用法:Connection:不再轉發的首部欄位名

  • Date
  • 表明建立HTTP報文的日期和時間

  • Pragma
  • HTTP/1.1之前版本的歷史遺留欄位,僅作為與HTTP/1.0的向後相容定義
    用法:Pragma:no-cache
    該首部欄位屬於通用首部欄位,但只用在客戶端傳送的請求中.所有的中間伺服器如果都能以HTTP/1.1為基準,直接採用Cache-Control:no-cache即可,但是不現實,所以傳送的請求中會同時含有以下兩個首部欄位:Cache-Control:no-cache和Pragma:no-cache

  • Trailer
  • 事先說明在報文主體後記錄了哪兒些首部欄位.可應用在HTTP/1.1版本分塊傳輸編碼時

  • Transfer-Encoding
  • 規定了傳輸報文主體時採用的編碼方式,僅對分塊傳輸編碼有效

  • Upgrade
  • 用於檢測HTTP協議及其他協議是否可使用更高的版本進行通訊

  • via
  • 追蹤客戶端與伺服器之間的請求和響應報文的傳輸路徑

  • Warning
  • 通常告知使用者一些與快取相關問題的警告.格式如下:
    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報文首部之通用首部詳解到此結束,感謝您的閱讀~
    最後,祝每一位改變世界的程式設計師,節日快樂~