所以你應(yīng)該是知道本章的內(nèi)容是非常的多的,不急惋啃,一步一個(gè)腳印,慢慢來监右。
首先我們來講一下通用字段
cache-control:這個(gè)是對緩存控制的屬性边灭,有下面這些屬性值
public :顧名思義,就是所有用戶都能利用緩存
private:只給特定的用戶提供緩存
no-cache:不是字面上的不緩存的意思健盒,是要想服務(wù)器檢驗(yàn)一下有效性再發(fā)過來
no-store:這個(gè)才是真的不能緩存
max-age: ?? 沒過期的就可以發(fā)過去绒瘦,響應(yīng)的最大age
s-maxage: 公共緩存服務(wù)器響應(yīng)的最大age
max-fresh ?? :要求服務(wù)器返回在規(guī)定時(shí)間內(nèi)還沒過期的緩存
max-stale:過期多久的緩存可接收,無參數(shù)則過期的都可以
only-if-cache:有緩存的話返回給我扣癣,沒有的話就算了惰帽,省點(diǎn)流量
must-revalidate:可緩存但是必須先向服務(wù)器確認(rèn)
下面是和no-cache 的區(qū)別
no-cache: 告訴瀏覽器、緩存服務(wù)器父虑,不管本地副本是否過期该酗,使用資源副本前,一定要到源服務(wù)器進(jìn)行副本有效性校驗(yàn)士嚎。
must-revalidate:告訴瀏覽器乐导、緩存服務(wù)器,本地副本過期前宵蕉,可以使用本地副本溯革;本地副本一旦過期,必須去源服務(wù)器進(jìn)行有效性校驗(yàn)膳殷。
connection :如果是首部屬性則為刪除某個(gè)屬性再轉(zhuǎn)發(fā)的意思
然后默認(rèn)為持久連接keep-alive操骡,如果要關(guān)閉連接則屬性值為close
Date ?? 聲明日期
pragma:為了向后兼容九火;等同于cache-control
Trailer ?? 事先說明報(bào)文主體后面的內(nèi)容
Transfer-Encoding ?? 規(guī)定傳輸報(bào)文主體的編碼方式
upgrade????來檢測是否支持更高版本的協(xié)議
via ?? 就行前面說的册招,每經(jīng)過一個(gè)代理或者網(wǎng)關(guān)就會(huì)加上該服務(wù)器端的信息
warning 警告碼????該首部通常會(huì)告知用戶一些與緩存相關(guān)的問題的警告
接下來就是請求的首部字段了
Accept ?
? 指定客戶端接受的媒體類型和優(yōu)先級(jí)岔激,比如接收text/html,就是接收HTML格式的文本是掰,q=n(0-1)來表示接收的優(yōu)先級(jí)虑鼎,默認(rèn)權(quán)重為1.0;
Accept-Charset:接收的字符集键痛,直接賦值utf-8即可炫彩,也可以增加權(quán)重
Accept-Encodeing:接收的編碼形式
Accept-language:接收的語言
Authorization:認(rèn)證信息
Except: ?? 告知服務(wù)器,希望能夠出現(xiàn)某種特定行為
Host:用來告知服務(wù)器資源所處的的主機(jī)名和端口號(hào)
if-match:只有其字段值和服務(wù)器的資源的ETag的值一樣的時(shí)候絮短,服務(wù)器才會(huì)返回資源
If-none-match: ?? 就是匹配不成功怎么樣咯
If-Modifed-Since:就是和其輸入的時(shí)間相比江兢,如果在那個(gè)時(shí)間之后有修改過,就返回丁频,沒有的話就不返回了杉允,是為了確認(rèn)本地緩存的有效性
If-Unmodified-Since:告訴服務(wù)器如果沒有修改才處理請求,有的話就算了
If-range:和If-match一樣的意思席里,配合range使用叔磷,如果匹配就返回range,如果不匹配就返回全部的內(nèi)容(if-match也可以奖磁,但是要match成功之后才發(fā)送range過去世澜,而if-range是和range一起發(fā)過去的)
Max-Forward:就是向前走幾步(使用trace方法時(shí)用到)用來檢測在哪個(gè)代理服務(wù)器出現(xiàn)了問題
Proxy-Authorization: 對代理服務(wù)器的認(rèn)證
Referer:告訴服務(wù)器是誰發(fā)起的請求
TE:告知服務(wù)器接收的編碼形式,和accept-Encoding很像署穗,但是用于傳輸編碼
User-Agent:把瀏覽器和用戶代理的詳細(xì)信息告訴服務(wù)器
再接下來我們講響應(yīng)首部 ?
Accept-ranges:bytes ?? 或者 none ? ? ?? 用來對應(yīng)請求首部的range是否可以被處理
age: ?? 告訴客戶端響應(yīng)已經(jīng)創(chuàng)建多久了寥裂,單位為秒
ETag:當(dāng)ETag更新的時(shí)候?qū)研碌膫鹘o服務(wù)器
Location: ?? 就是返會(huì)3XX需要重定向時(shí)候的要重定向的地址
Proxy-Authenticate:把代理所需要的認(rèn)證信息發(fā)送給客戶端
Retry-After: ?? 多久后再來訪問
server: ?? 把服務(wù)器的信息告訴客戶端
Vary: ?? 源服務(wù)器告訴代理服務(wù)器 緩存的使用方法,比如Accept-language案疲,那么相同的語言的請求就返回緩存
WWW-Authenticate:告訴客戶端它所請求的URI的認(rèn)證方案
最后是我們的實(shí)體首部字段
Allow: ?? 告訴客戶端封恰,服務(wù)端所支持的請求方法
Content-Encoding: ?? 聲明編碼方式
Content-Language: ?? 聲明使用的自然語言
Content-Length: ?? 聲明資源的大小
Content-Location: ?? 給出報(bào)文主體部分對應(yīng)的URI
Content-MD5: ?? 由MD5來確認(rèn)內(nèi)容是否被更改過
Content-range: ?? 返回對應(yīng)范圍的資源
Content- Type: ?? 聲明實(shí)體主題的媒體類型
Expires: ?? 聲明資源的失效日期
Last-Modified: ?? 最后一次修改的日期
還有為cookie服務(wù)的首部字
set-cookie
Cookie:就是從服務(wù)器那里收到的set-cookie的值