HTTP頭信息

通常 HTTP 消息包括客戶機向服務器的請求消息和服務器向客戶機的響應消息。這兩種類型的消息由一個起始行,一個或者多個頭域,一個只是頭域結束的空行和可選的消息體組成。HTTP 的頭域包括通用頭,請求頭,響應頭和實體頭四個部分。每個頭域由一個域名,冒號(:)和域值三部分組成。域名是大小寫無關的,域值前可以添加任何數量的空格符,頭域可以被擴展爲多行,在每行開始處,使用至少一個空格或製表符。



四種不同類型的頭域

通用頭域:即可用於請求,也可用於響應,是作爲一個整體而不是特定資源與事務相關聯。

請求頭域:允許客戶端傳遞關於自身的信息和希望的響應形式。

響應頭域:服務器和於傳遞自身信息的響應。

實體頭域:定義被傳送資源的信息。即可用於請求,也可用於響應。



頭域格式:<name>:<value><CRLF>

Accept

定義客戶端可以處理的媒體類型,*/* 表示任何類型,type/* 表示該類型下的所有子類型。


Accept-Charset

定義客戶端可以處理的字符集


Accept-Encoding

定義客戶端可以理解的編碼機制,通常指定壓縮方法,是否支持壓縮,支持什麼壓縮方法(gzip,deflate)


Accept-Language

定義客戶端樂於接受的自然語言列表。例如:Accept-Language: en,de


Accept-Ranges

WEB服務器表明自己是否接受獲取其某個實體的一部分(比如文件的一部分)的請求( bytes:表示接受,none:表示不接受)


Age

當代理服務器用自己緩存的實體去響應請求時,用該頭部表明該實體從產生到現在經過多長時間了,以秒爲單位。


Authorization

當客戶端接收到來自WEB服務器的 WWW-Authenticate 響應時,用該頭部來回應自己的身份驗證信息給WEB服務器。


Cache-Control

一個用於定義緩存指令的通用頭標。


Connection

一個用於表明是否保存socket連接爲開放的通用頭信息。

例如:Keep-Alive:300


Content-Encoding

WEB服務器表明自己使用了什麼壓縮方法(gzip,deflate)壓縮響應中的對象。


Content-Language

WEB 服務器告訴瀏覽器自己響應的對象的語言。


Content-Length

WEB 服務器告訴瀏覽器自己響應的對象的長度。


Content-Range

WEB 服務器表明該響應包含的部分對象爲整個對象的哪個部分。


Content-Type

WEB服務器告訴瀏覽器自己響應的對象的類型。


Date

發送HTTP消息的日期和時間。


ETag

就是一個對象(比如URL)的標誌值,,ETag 的作用跟 Last-Modified 的作用差不多,主要供 WEB 服務器判斷一個對象是否改變了。


Expired

WEB服務器表明該實體將在什麼時候過期,對於過期了的對象,只有在跟WEB服務器驗證了其有效性後,才能用來響應客戶請求。


Host

被請求資源的主機名。對於使用HTTP/1.1的請求而言,此域是強制性的。


If-Match

如果對象的 ETag 沒有改變,其實也就意味著對象沒有改變,才執行請求的動作。


If-None-Match

如果對象的 ETag 改變了,其實也就意味著對象也改變了,才執行請求的動作。


If-Modified-Since

如果請求的對象在該頭部指定的時間之後修改了,才執行請求的動作(比如返回對象),否則返回代碼304,告訴瀏覽器該對象沒有修改。


If-Range

瀏覽器告訴 WEB 服務器,如果我請求的對象沒有改變,就把我缺少的部分給我,如果對象改變了,就把整個對象給我。瀏覽器通過發送請求對象的 ETag 或者 自己所知道的最後修改時間給 WEB 服務器,讓其判斷對象是否改變了,必須跟 Range 頭部一起使用。


Last-Modified

WEB 服務器認爲對象的最後修改時間,比如文件的最後修改時間,動態頁面的最後產生時間等等。


Location

WEB服務器告訴瀏覽器,試圖訪問的對象已經被移到別的位置了,到該頭部指定的位置去取。


Pramga

一個通用頭標,它發送實現相關的信息,主要使用 Pramga: no-cache,相當於 Cache-Control: no-cache。


Proxy-Authenticate

代理服務器響應瀏覽器,要求其提供代理身份驗證信息。


Proxy-Authorization

瀏覽器響應代理服務器的身份驗證請求,提供自己的身份信息。


Range

瀏覽器(比如 Flashget 多線程下載時)告訴 WEB 服務器自己想取對象的哪部分。


Referer

瀏覽器向 WEB 服務器表明自己是從哪個 網頁/URL 獲得/點擊 當前請求中的網址/URL。


Server

WEB 服務器表明自己是什麼軟件及版本等信息。


User-Agent

瀏覽器表明自己的身份(是哪種瀏覽器等信息)。


Transfer-Encodin

WEB服務器表明自己對本響應消息體(不是消息體裏面的對象)作了怎樣的編碼,比如是否分塊


Vary

WEB服務器用該頭部的內容告訴 Cache 服務器,在什麼條件下才能用本響應所返回的對象響應後續的請求。


Via

列出從客戶端到 OCS 或者相反方向的響應經過了哪些代理服務器,他們用什麼協議(和版本)發送的請求。



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