一、Accept:告訴WEB服務器本身接受什麼介質類型,*/* 表示任何類型,type/* 表示該類型下的全部子類型,type/sub-type。
二、Accept-Charset:瀏覽器申明本身接收的字符集
Accept-Encoding:瀏覽器申明本身接收的編碼方法,一般指定壓縮方法,是否支持壓縮,支持什麼壓縮方法(gzip,deflate)
Accept-Language:瀏覽器申明本身接收的語言
語言跟字符集的區別:中文是語言,中文有多種字符集,好比big5,gb2312,gbk等等。
三、Accept-Ranges:WEB服務器代表本身是否接收穫取其某個實體的一部分(好比文件的一部分)的請求。bytes:表示接收,none:表示不接受。
四、Age:當代理服務器用本身緩存的實體去響應請求時,用該頭部代表該實體從生產到如今通過多長時間了。
五、Authorization:當客戶端接收到來自WEB服務器的WWW-Authenticate響應時,用該頭部來回應本身的身份驗證信息給WEB服務器。
六、Cache-Control:
請求:
no-cache:不要緩存的實體,要求如今從WEB服務器去取
max-age:只接受Age值小於max-age值,而且沒有過時對象
max-stale:能夠接收過去的對象,可是過時時間必須小於max-stale值
min-fresh:接受其新鮮生命期大於當前Age跟min-fresh值之和的緩存對象
響應:
public:能夠用Cached內容迴應任何用戶
private:只能用緩存內用迴應先前請求該內容的那個用戶
no-cache:能夠緩存,可是隻有在跟WEB服務器驗證了其有效後,才能返回給客戶端
max-age:本響應包含的對象的過時時間
ALL:no-store不容許緩存
七、Connection
請求:
close:告訴WEB服務器或者代理服務器,在完成本次請求的響應後,斷開鏈接,不要等待本次鏈接後的請求了
keepalive:告訴WEB服務器或者代理服務器,在完成本次請求後,保持鏈接,等待本次鏈接的後續請求
響應:
close:鏈接已經關閉
keepalive:鏈接保持着,在等待本次鏈接的後續請求
Keep-Alive:若是瀏覽器請求保持鏈接,則該頭部代表但願WEB服務器保持鏈接多長時間(秒)。例如:Keep-Alive:300
八、Content-Encoding:WEB服務器代表本身使用了什麼壓縮方法(gzip,deflate)壓縮響應中的對象。例如Content-Encoding:gzip
九、Content-Language:WEB服務器告訴瀏覽器本身響應的對象的語言。
十、Content-Lenth:WEB服務器告訴瀏覽器本身響應對象的長度。例如:Content-Lenth:26012
十一、Content-Range:WEB服務器代表響應包含的部分對象爲整個對象的哪一個部分,例如:Content-Range:bytes 210010-47201/47202
十二、Content-Type:WEB服務器告訴瀏覽器本身響應的對象的類型。例如:Content-Type:application/xml
1三、ETag:就是一個對象(好比URL)的標誌值,就一個對象而言,好比一個html文件,若是文件修改了,其ETag也會修改,因此ETag的做用
和Last-Modified的做用差很少,主要供WEB服務器判斷一個對象是否改變了。好比前一次請求某個html文件是得到了其ETag,當此次
又請求這個文件時,瀏覽器就會把先前得到的ETag值發送給WEB服務器,而後WEB服務器會把這個ETag跟該文件當前的ETag進行對比,
而後就知道這個文件有沒有改變了。
1四、Expired:WEB服務器代表該實體將在何時過時,對於過時了的對象,只有在跟WEB服務器驗證了其有效性後,才能用來響應客戶請求,
是HTTP/1.0的頭部。例如:Ecpires:Thu,04 Jun 2017 14:59:58 GMT
1五、Host:客戶端制定本身想訪問的WEB服務器的域名/IP地址和端口號。例如:Host:www.fansik.com
1六、If-Match:若是對象的ETag沒有改變,其實也就意味着對象沒有改變,才執行請求的動做。
1七、If-None-Match:若是對象的ETag改變了,其實也就意味着對象也改變了,才執行請求的動做。
1八、If-Modeified-Since:若是請求的對象在該頭部指定的時間以後修改了,才執行請求的動做(好比返回對象),不然返回代碼304,告訴瀏覽器
該對象沒有修改。例如:If-Modeified-Since:Thu,04 Jun 2017 14:59:58 GMT
1九、If-Unmodified-Since:若是請求的對象在該頭部指定的時間以後沒修改過,才執行請求的動做(好比返回對象)。
20、If-Range:瀏覽器告訴WEB服務器,若是我請求的對象沒有改變,就把我缺乏的部分給我,若是對象改變了,就把整個對象給我。瀏覽器經過
發送請求對象的ETag或者本身所知道的最後修改時間給WEB服務器,讓其判斷對象是否改變了,老是跟Range頭部一塊兒使用。
2一、Last-Modeified:WEB服務器認爲對象的最後修改時間,好比文件的最後修改時間,動態頁面的最後產生時間等等。例如:Last-Modified:Tue, 06 May 2008 02:42:43 GMT
2二、Location:WEB服務器告訴瀏覽器,試圖訪問的對象已經被遷移到別的位置了,到該頭部制定的位置去取。例如:Location:http://www.fansik.com/fansik.gif
2三、Pramga:主要使用Pramga:no-cache,至關於Cache-Control:no-cache。例如:Pragma:no-cache
2四、Proxy-Authenticate:代理服務器響應瀏覽器,要求其提供代理身份驗證信息。
Proxy-Authorization:瀏覽器響應代理服務器的身份驗證請求,提供本身的身份信息。
2五、Range:瀏覽器(好比Flashget多線程下載時)告訴WEB服務器本身想取對象的哪部分。例如:Range:bytes=1173546-
2六、Referer:瀏覽器向WEB服務器代表本身是從哪一個頁面/URL得到/點擊當前請求中的網址/URL。例如:Referer:http://www.fansik.com
2七、Server:WEB服務器代表本身是什麼軟件及版本等信息,例如:Server:"nginx"
2八、User-Agent:瀏覽器代表本身的身份(是哪一種瀏覽器)。例如:User-Agent "Mozilla/5.0 (Windows NT 10.0;… Gecko/20100101 Firefox/54.0"
2九、Transfer-Encoding:WEB服務器代表本身對本響應消息體(不是消息體裏面的對象)作了怎樣的編碼,好比是否分塊(chunked)。例如:Transfer-Encoding:"chunked"
30、Vary:WEB服務器用該頭部的內容告訴Cache服務器,在什麼條件下才能用本響應所返回的對象響應後續的請求,假如源WEB服務器在接到第一個請求消息時,
其響應消息的頭部爲:Content-Encoding:gzip;Vary:Content-Encoding那麼Cache服務器會分析後續請求消息的頭部,檢查其Accept-Encoding,是否
跟先前響應的Vary頭部值一直,便是否使用相同的內容編碼方法,這樣就能夠防止Cache服務器用本身Cache裏面壓縮後的實體響應給不具有解壓能力的瀏覽器。
例如:Vary:Accept-Encoding
3一、Via:列出客戶端到OCS或者相反方向的響應通過了那些代理服務器,他們用什麼協議(和版本)發送的請求。當客戶端請求到達第一個代理服務器時,該服務器
會在本身發出的請求裏面添加Via頭部,並天上本身的相關信息,當下一個代理服務器收到第一個代理服務器的請求時,會在本身發出的請求裏面複製前一個
代理服務器的請求Via頭部,並把本身的相關信息加到後面,以此類推,當OCS收到最後一個代理服務器的請求時,檢查Via頭部,就知道該請求所通過的路由。
例如:Via:"1.1 varnish-v4"html
有圖有真相:nginx