国产精品成人VA在线观看,亚洲日韩在线中文字幕综合,亚洲AV电影天堂男人的天堂,久久人人爽人人爽人人av东京热

News新聞

業(yè)界新聞動(dòng)態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁(yè)      運(yùn)營(yíng)推廣      HTTP頭的Expires與Cache-control

HTTP頭的Expires與Cache-control

標(biāo)簽: 發(fā)布日期:2014-03-17 00:00:00 1899

1.概念

Cache-control用于控制HTTP緩存(在HTTP/1.0中可能部分沒(méi)實(shí)現(xiàn),僅僅實(shí)現(xiàn)了Pragma: no-cache)

數(shù)據(jù)包中的格式:

Cache-Control: cache-directive

cache-directive可以為以下:

request時(shí)用到:

| "no-cache"
| "no-store"
| "max-age" "=" delta-seconds
| "max-stale" [ "=" delta-seconds ]
| "min-fresh" "=" delta-seconds
| "no-transform"
| "only-if-cached"
| "cache-extension"

response時(shí)用到:

| "public"
| "private" [ "=" <"> field-name <"> ]
| "no-cache" [ "=" <"> field-name <"> ]
| "no-store"
| "no-transform"
| "must-revalidate"
| "proxy-revalidate"
| "max-age" "=" delta-seconds
| "s-maxage" "=" delta-seconds
| "cache-extension"
部分說(shuō)明:
根據(jù)是否可緩存分為
Public  指示響應(yīng)可被任何緩存區(qū)緩存。
Private  指示對(duì)于單個(gè)用戶(hù)的整個(gè)或部分響應(yīng)消息,不能被共享緩存處理。這允許服務(wù)器僅僅描述當(dāng)用戶(hù)的
部分響應(yīng)消息,此響應(yīng)消息對(duì)于其他用戶(hù)的請(qǐng)求無(wú)效。
no-cache  指示請(qǐng)求或響應(yīng)消息不能緩存(HTTP/1.0用Pragma的no-cache替換)
根據(jù)什么能被緩存
no-store  用于防止重要的信息被無(wú)意的發(fā)布。在請(qǐng)求消息中發(fā)送將使得請(qǐng)求和響應(yīng)消息都不使用緩存。
根據(jù)緩存超時(shí)
max-age  指示客戶(hù)機(jī)可以接收生存期不大于指定時(shí)間(以秒為單位)的響應(yīng)。
min-fresh  指示客戶(hù)機(jī)可以接收響應(yīng)時(shí)間小于當(dāng)前時(shí)間加上指定時(shí)間的響應(yīng)。
max-stale  指示客戶(hù)機(jī)可以接收超出超時(shí)期間的響應(yīng)消息。如果指定max-stale消息的值,那么客戶(hù)機(jī)可以
接收超出超時(shí)期指定值之內(nèi)的響應(yīng)消息。
Expires 表示存在時(shí)間,允許客戶(hù)端在這個(gè)時(shí)間之前不去檢查(發(fā)請(qǐng)求),等同max-age的
效果。但是如果同時(shí)存在,則被Cache-Control的max-age覆蓋。
格式:
Expires = "Expires" ":" HTTP-date
例如
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必須是GMT格式
 
2.應(yīng)用
通過(guò)HTTP的META設(shè)置expires和cache-control
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta http-equiv="Expires" content="Mon, 20 Jul 2009 23:00:00 GMT" />
上述設(shè)置僅為舉例,實(shí)際使用其一即可。這樣寫(xiě)的話(huà)僅對(duì)該網(wǎng)頁(yè)有效,對(duì)網(wǎng)頁(yè)中的圖片或其他請(qǐng)求無(wú)效,并不會(huì)做任何cache。
這樣客戶(hù)端的請(qǐng)求就多了,盡管只是檢查L(zhǎng)ast-modified狀態(tài)的東西,但是請(qǐng)求一多對(duì)瀏覽速度必定有影響。
如果要對(duì)文件添加cache可以通過(guò)apache的mod_expire模塊,寫(xiě)法為
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 days"
</IfModule>
記得ExpiresActive設(shè)為On,我起先沒(méi)設(shè)置On,似乎怎樣YSlow都查不到緩存機(jī)制。這樣添加的話(huà)就是默認(rèn)所有的。
如果要針對(duì)個(gè)別MIME類(lèi)型則可以:
ExpiresByType image/gif "access plus 5 hours 3 minutes"
見(jiàn) Apache Module mod_expires
另外,當(dāng)點(diǎn)擊瀏覽器上的刷新,客戶(hù)端發(fā)送的請(qǐng)求中均是max-age=0,表示validate操作,發(fā)送請(qǐng)求到服務(wù)器
要求檢查cache,再更新cache,一般得到的是304 Not Modified,表示沒(méi)變動(dòng)。
 

參考: HTTP RFC2616 HeaderField HTTP協(xié)議基礎(chǔ)