《高性能網(wǎng)站建設(shè)指南》閱讀筆記_規(guī)則3- 添加Expires頭
發(fā)布時(shí)間:2013-11-22 瀏覽:445打印字號(hào):大中小
使用Expires來(lái)設(shè)置瀏覽器緩存,就是到指定的時(shí)間為止一直訪問(wèn)緩存中的內(nèi)容。另外在http1.1中引入了cache-control頭來(lái)克服Expires頭的限制,因?yàn)镋xpires頭使用一個(gè)特定時(shí)間,它要求服務(wù)器和客戶端的時(shí)鐘嚴(yán)格同步,過(guò)期時(shí)間需要經(jīng)常檢查,并且一旦未來(lái)這一天到了,還需要在服務(wù)器配置中提供一個(gè)新的日期。
Cache-control使用max-age指定指定組件被緩存多久,它以秒為單位定義了一個(gè)更新窗。如果從組件被請(qǐng)求開(kāi)始過(guò)去的秒數(shù)少于max-age,瀏覽器就使用緩存版本。
如果你同時(shí)指定了Expires和cache-control頭,max-age指令將重寫(xiě)Expires頭。
可以在頁(yè)面上設(shè)置(只適用于html等頁(yè)面,不適用于組件):
可以通過(guò)iis設(shè)置:
必須是本地計(jì)算機(jī)上 Administrators組的成員或者必須被委派了相應(yīng)的權(quán)限,才能執(zhí)行下列步驟。作為安全性的優(yōu)質(zhì)操作,最好使用不屬于 Administrators組的帳戶登錄計(jì)算機(jī),然后使用運(yùn)行方式命令以管理員身份運(yùn)行 IIS管理器
在命令提示符下,鍵入 runas /user:administrative_accountname “mmc%systemroot%\system32\inetsrv\iis.msc”。
IIS為不同的文件設(shè)置不同的過(guò)期頭
為靜態(tài)文件(js,css,image)設(shè)置客戶端緩存是前端優(yōu)化的重要法則之一,通過(guò)IIS為靜態(tài)文件設(shè)置過(guò)期頭(Expires headers)很方便,
1.打開(kāi)IIS管理器;
2.點(diǎn)擊要設(shè)置的站點(diǎn),在功能視圖中雙擊HTTP響應(yīng)標(biāo)頭
,
3.然后點(diǎn)擊,
打開(kāi)對(duì)話框
但是這樣操作,web的整個(gè)站的所有的靜態(tài)文件的緩存時(shí)間都一樣,如果我們希望為不同的靜態(tài)文件添加不同的緩存時(shí)間,比如有些文件很久不改變希望緩存時(shí)間長(zhǎng)些,有些希望緩存時(shí)間短些。
操作起來(lái)還是很簡(jiǎn)單,下面以添加某一個(gè)JS文件的緩存時(shí)間為例:
1. 在IIS管理器下點(diǎn)擊該文件的文件夾并切換到內(nèi)容視圖
2. 選中要設(shè)置的js文件,如上圖的jquery-1.3.2.js,右鍵切換到功能視圖,這時(shí)看到的IIS管理臺(tái)內(nèi)容是
雙擊上圖的HTTP響應(yīng)標(biāo)頭就可以像為整個(gè)站點(diǎn)設(shè)置過(guò)期時(shí)間一樣的操作。
上面的操作最終還是生成web.config的配置,經(jīng)過(guò)上面的設(shè)置你會(huì)發(fā)現(xiàn)在Script文件夾下生成了一個(gè)web.config配置文件,打開(kāi)發(fā)現(xiàn)內(nèi)容如下
這樣就明白了通過(guò)上面在IIS管理器的“繁瑣”的界面操作可以通過(guò)簡(jiǎn)單的web.config中配置即可,比如要整個(gè)Script文件夾設(shè)置統(tǒng)一的過(guò)期日期,只用添加一個(gè)location節(jié)即可
注意:
1. Cache-Control 具有優(yōu)先權(quán)于Expires
2. 為了確保更新的組件在用戶的瀏覽器中也更新(而不是使用緩存中的),解決方案是:將所有需要更新的組件更改文件名。


