HTTP头信息
通常 HTTP 消息包括客戶機向服務(wù)器的請求消息和服務(wù)器向客戶機的響應(yīng)消息。這兩種類型的消息由一個起始行,一個或者多個頭域,一個只是頭域結(jié)束的空行和可選的消息體組成。HTTP 的頭域包括通用頭,請求頭,響應(yīng)頭和實體頭四個部分。每個頭域由一個域名,冒號(:)和域值三部分組成。域名是大小寫無關(guān)的,域值前可以添加任何數(shù)量的空格符,頭域可以被擴展為多行,在每行開始處,使用至少一個空格或制表符。
四種不同類型的頭域
通用頭域:即可用于請求,也可用于響應(yīng),是作為一個整體而不是特定資源與事務(wù)相關(guān)聯(lián)。
請求頭域:允許客戶端傳遞關(guān)于自身的信息和希望的響應(yīng)形式。
響應(yīng)頭域:服務(wù)器和于傳遞自身信息的響應(yīng)。
實體頭域:定義被傳送資源的信息。即可用于請求,也可用于響應(yīng)。
頭域格式:<name>:<value><CRLF>
Accept
定義客戶端可以處理的媒體類型,*/* 表示任何類型,type/* 表示該類型下的所有子類型。
Accept-Charset
定義客戶端可以處理的字符集
Accept-Encoding
定義客戶端可以理解的編碼機制,通常指定壓縮方法,是否支持壓縮,支持什么壓縮方法(gzip,deflate)
Accept-Language
定義客戶端樂于接受的自然語言列表。例如:Accept-Language: en,de
Accept-Ranges
WEB服務(wù)器表明自己是否接受獲取其某個實體的一部分(比如文件的一部分)的請求( bytes:表示接受,none:表示不接受)
Age
當(dāng)代理服務(wù)器用自己緩存的實體去響應(yīng)請求時,用該頭部表明該實體從產(chǎn)生到現(xiàn)在經(jīng)過多長時間了,以秒為單位。
Authorization
當(dāng)客戶端接收到來自WEB服務(wù)器的 WWW-Authenticate 響應(yīng)時,用該頭部來回應(yīng)自己的身份驗證信息給WEB服務(wù)器。
Cache-Control
一個用于定義緩存指令的通用頭標(biāo)。
Connection
一個用于表明是否保存socket連接為開放的通用頭信息。
例如:Keep-Alive:300
Content-Encoding
WEB服務(wù)器表明自己使用了什么壓縮方法(gzip,deflate)壓縮響應(yīng)中的對象。
Content-Language
WEB 服務(wù)器告訴瀏覽器自己響應(yīng)的對象的語言。
Content-Length
WEB 服務(wù)器告訴瀏覽器自己響應(yīng)的對象的長度。
Content-Range
WEB 服務(wù)器表明該響應(yīng)包含的部分對象為整個對象的哪個部分。
Content-Type
WEB服務(wù)器告訴瀏覽器自己響應(yīng)的對象的類型。
Date
發(fā)送HTTP消息的日期和時間。
ETag
就是一個對象(比如URL)的標(biāo)志值,,ETag 的作用跟 Last-Modified 的作用差不多,主要供 WEB 服務(wù)器判斷一個對象是否改變了。
Expired
WEB服務(wù)器表明該實體將在什么時候過期,對于過期了的對象,只有在跟WEB服務(wù)器驗證了其有效性后,才能用來響應(yīng)客戶請求。
Host
被請求資源的主機名。對于使用HTTP/1.1的請求而言,此域是強制性的。
If-Match
如果對象的 ETag 沒有改變,其實也就意味著對象沒有改變,才執(zhí)行請求的動作。
If-None-Match
如果對象的 ETag 改變了,其實也就意味著對象也改變了,才執(zhí)行請求的動作。
If-Modified-Since
如果請求的對象在該頭部指定的時間之后修改了,才執(zhí)行請求的動作(比如返回對象),否則返回代碼304,告訴瀏覽器該對象沒有修改。
If-Range
瀏覽器告訴 WEB 服務(wù)器,如果我請求的對象沒有改變,就把我缺少的部分給我,如果對象改變了,就把整個對象給我。瀏覽器通過發(fā)送請求對象的 ETag 或者 自己所知道的最后修改時間給 WEB 服務(wù)器,讓其判斷對象是否改變了,必須跟 Range 頭部一起使用。
Last-Modified
WEB 服務(wù)器認(rèn)為對象的最后修改時間,比如文件的最后修改時間,動態(tài)頁面的最后產(chǎn)生時間等等。
Location
WEB服務(wù)器告訴瀏覽器,試圖訪問的對象已經(jīng)被移到別的位置了,到該頭部指定的位置去取。
Pramga
一個通用頭標(biāo),它發(fā)送實現(xiàn)相關(guān)的信息,主要使用 Pramga: no-cache,相當(dāng)于 Cache-Control: no-cache。
Proxy-Authenticate
代理服務(wù)器響應(yīng)瀏覽器,要求其提供代理身份驗證信息。
Proxy-Authorization
瀏覽器響應(yīng)代理服務(wù)器的身份驗證請求,提供自己的身份信息。
Range
瀏覽器(比如 Flashget 多線程下載時)告訴 WEB 服務(wù)器自己想取對象的哪部分。
Referer
瀏覽器向 WEB 服務(wù)器表明自己是從哪個 網(wǎng)頁/URL 獲得/點擊 當(dāng)前請求中的網(wǎng)址/URL。
Server
WEB 服務(wù)器表明自己是什么軟件及版本等信息。
User-Agent
瀏覽器表明自己的身份(是哪種瀏覽器等信息)。
Transfer-Encodin
WEB服務(wù)器表明自己對本響應(yīng)消息體(不是消息體里面的對象)作了怎樣的編碼,比如是否分塊
Vary
WEB服務(wù)器用該頭部的內(nèi)容告訴 Cache 服務(wù)器,在什么條件下才能用本響應(yīng)所返回的對象響應(yīng)后續(xù)的請求。
Via
列出從客戶端到 OCS 或者相反方向的響應(yīng)經(jīng)過了哪些代理服務(wù)器,他們用什么協(xié)議(和版本)發(fā)送的請求。
總結(jié)
- 上一篇: python 抓取的网页默认是bytes
- 下一篇: 第五章 MyEclipse配置had