HTTP/1.1 首部字段一覽
HTTP/1.1 規範定義瞭如下 47 種首部字段。
6-2:請求首部字段
除此之外還有很多經常使用的在RFC中定義的首部字段如:Cookie,Set-Cookie和Content-Disposition.這些都被歸納到RFC4229 HTTP Header Field Registrations
End-to-end 首部和 Hop-by-hop首部
端到端(End-to-end):分類到這個類的首部一定會被轉發給對應的最終接收目標,且必須保存在由緩存產生的響應。
逐跳首部(Hop-By-Hop):只對單次轉發有效,會因爲通過緩存或代理不再轉發。HTTP/1.1後的版本,如果要使用這個,要提供Connection首部字段。有這八個首字段屬於:
Connection Keep-Alive Proxy-Authenticate Proxy-Authorization
Trailer TE Transfer-Encoding Upgrade …
字段詳解
通用首部字段
這意味着能分別在請求報文和響應報文中使用。
Cache-Control
指令的參數是可選的, 多個指令之間通過“,”分隔。 首部字段 CacheControl 的指令可用於請求及響應時。
如:
Cache-Control: private, max-age=0, no-cache
no-cache:
使用 no-cache 指令的目的是爲了防止從緩存中返回過期的資源。 客戶端發送的請求中如果包含 no-cache 指令,則表示客戶端將不會接 收緩存過的響應。於是,“中間”的緩存服務器必須把客戶端請求轉發 給源服務器。
如果服務器返回的響應中包含 no-cache 指令,那麼緩存服務器不能對 資源進行緩存。源服務器以後也將不再對緩存服務器請求中提出的資 源有效性進行確認,且禁止其對響應資源進行緩存操作。
max-age:
當客戶端發送的請求中包含 max-age 指令時,如果判定緩存資源的緩 存時間數值比指定時間的數值更小,那麼客戶端就接收緩存的資源。 另外,當指定 max-age 值爲 0,那麼緩存服務器通常需要將請求轉發 給源服務器。
Connection
控制不再轉發給代理的首部字段
管理持久連接
如:Connection: Keep-Alive
Via
使用首部字段 Via 是爲了追蹤客戶端與服務器之間的請求和響應報文 的傳輸路徑。
報文經過代理或網關時,會先在首部字段 Via 中附加該服務器的信 息,然後再進行轉發。這個做法和 traceroute 及電子郵件的 Received 首部的工作機制很類似。
首部字段 Via 不僅用於追蹤報文的轉發,還可避免請求迴環的發生。 所以必須在經過代理時附加該首部字段內容。