天天看點

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 或者相反方向的響應經過了哪些代理伺服器,他們用什麼協定(和版本)發送的請求。

     本文轉自Tar0 51CTO部落格,原文連結:http://blog.51cto.com/tar0cissp/1346533,如需轉載請自行聯系原作者

繼續閱讀