瀏覽器緩存相關(guān)http頭盡量減少http的請(qǐng)求次數(shù)
來(lái)源:易賢網(wǎng) 閱讀:1083 次 日期:2014-05-15 21:04:26
溫馨提示:易賢網(wǎng)小編為您整理了“瀏覽器緩存相關(guān)http頭盡量減少http的請(qǐng)求次數(shù)”,方便廣大網(wǎng)友查閱!

最近看雅虎黃金34條,學(xué)習(xí)下優(yōu)化網(wǎng)站性能的方法。其中有一條:“為文件頭指定Expires或Cache-Control”,具體來(lái)說(shuō)指對(duì)于靜態(tài)內(nèi)容:設(shè)置文件頭過(guò)期時(shí)間Expires的值為“Neverexpire”永不過(guò)期;而對(duì)于動(dòng)態(tài)內(nèi)容:使用恰當(dāng)?shù)腃ache-Control文件頭來(lái)幫助瀏覽器進(jìn)行有條件的請(qǐng)求。

這一條可以和雅虎34條的第一條聯(lián)系起來(lái),那就是盡量減少http的請(qǐng)求次數(shù)(雅虎34條很多都是努力去減少http請(qǐng)求為目的的),畢竟如果有太多的資源需要下載需要新的http鏈接疊加起來(lái)的耗時(shí)是不容忽視的。所以可以利用緩存技術(shù)來(lái)對(duì)網(wǎng)站的性能加以優(yōu)化,從而避免不必要的http請(qǐng)求。剛好可以順便整理下瀏覽器相關(guān)的緩存技術(shù)和與緩存相關(guān)的http的頭:

1.Expires(過(guò)期時(shí)間):

HTTP頭信息Expires(過(guò)期時(shí)間)屬性是HTTP控制緩存的基本手段,告訴瀏覽器緩存保存的時(shí)間。過(guò)了這個(gè)時(shí)間,緩存器就會(huì)向源服務(wù)器發(fā)送請(qǐng)求,檢查文檔是否被修改。適用于設(shè)置靜態(tài)圖片文件等等,而且對(duì)于控制有規(guī)律改變的網(wǎng)頁(yè)也很有用,比如設(shè)置間隔固定的時(shí)間去更新等等;如果使用了Expires文件頭,當(dāng)頁(yè)面內(nèi)容改變時(shí)就必須改變內(nèi)容的文件名。比如Yahoo經(jīng)常使用這樣的步驟:在內(nèi)容的文件名中加上版本號(hào),如yahoo_2.0.6.js,從而能夠主動(dòng)進(jìn)行更新。

使用expires:如果你使用的是Apache服務(wù)器,可以使用ExpiresDefault來(lái)設(shè)定相對(duì)當(dāng)前日期的過(guò)期時(shí)間,使用mod_expires,在httpd.conf或者.htaccess中加上

代碼如下:

<FilesMatch"\\.(ico|gif|jpg|html)$">ExpiresDefault"accessplus10years"</FileMatch>

2.Cache-Control

各個(gè)消息中的指令含義如下:

1.Public指示響應(yīng)可被任何緩存區(qū)緩存;

2.Private指示對(duì)于單個(gè)用戶的整個(gè)或部分響應(yīng)消息,不能被共享緩存處理。這允許服務(wù)器僅僅描述當(dāng)用戶的部分響應(yīng)消息,此響應(yīng)消息對(duì)于其他用戶的請(qǐng)求無(wú)效。

3.no-cache指示請(qǐng)求或響應(yīng)消息不能緩存;

4.no-store用于防止重要的信息被無(wú)意的發(fā)布。在請(qǐng)求消息中發(fā)送將使得請(qǐng)求和響應(yīng)消息都不使用緩存;

5.max-age指示客戶機(jī)可以接收生存期不大于指定時(shí)間(以秒為單位)的響應(yīng)。

6.min-fresh指示客戶機(jī)可以接收響應(yīng)時(shí)間小于當(dāng)前時(shí)間加上指定時(shí)間的響應(yīng)。

7.max-stale指示客戶機(jī)可以接收超出超時(shí)期間的響應(yīng)消息。如果指定max-stale消息的值,那么客戶機(jī)可以接收超出超時(shí)期指定值之內(nèi)的響應(yīng)消息;

舉例:

一般說(shuō)來(lái)這種靜態(tài)文件永遠(yuǎn)不應(yīng)該過(guò)期,如果真的要給這個(gè)Cache加上一個(gè)期限,那我希望是——一萬(wàn)年

即:“Cache-Control:max-age=315360000000”

3.Last-Modified/If-Modified-Since

一問(wèn)一答的模式,這邊問(wèn)你更新了沒(méi)有,那邊回答,很容易理解;

4.配置ETag

Entitytags(ETags)(實(shí)體標(biāo)簽)是web服務(wù)器和瀏覽器用于判斷瀏覽器緩存中的內(nèi)容和服務(wù)器中的原始內(nèi)容是否匹配的一種機(jī)制(“實(shí)體”就是所說(shuō)的“內(nèi)容”,包括圖片、腳本、樣式表等)。增加ETag為實(shí)體的驗(yàn)證提供了一個(gè)比使用“l(fā)ast-modifieddate(上次編輯時(shí)間)”更加靈活的機(jī)制。Etag是一個(gè)識(shí)別內(nèi)容版本號(hào)的唯一字符串。唯一的格式限制就是它必須包含在雙引號(hào)內(nèi)。原始服務(wù)器通過(guò)含有ETag文件頭的響應(yīng)指定頁(yè)面內(nèi)容的ETag。例如:

HTTP/1.1200OK

Last-Modified:Tue,12Dec200603:03:59GMT

ETag:“10c24bc-4ab-457e1c1f”

Content-Length:12195

稍后,如果瀏覽器要驗(yàn)證一個(gè)文件,它會(huì)使用If-None-Match文件頭來(lái)把ETag傳回給原始服務(wù)器。在這個(gè)例子中,如果ETag匹配,就會(huì)返回一個(gè)304狀態(tài)碼,這就節(jié)省了12195字節(jié)的響應(yīng)。

GET/i/yahoo.gifHTTP/1.1

Host:us.yimg.com

If-Modified-Since:Tue,12Dec200603:03:59GMT

If-None-Match:“10c24bc-4ab-457e1c1f”

HTTP/1.1304NotModified

關(guān)于以上幾種緩存機(jī)制的優(yōu)先級(jí),在網(wǎng)上找到一種說(shuō)法:

no-cache>Expires>Last-Modified

也就是講,最前面的最重要,前面的生效后,后面的基本就失效了

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)頁(yè)制作
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
相關(guān)閱讀網(wǎng)頁(yè)制作

2025國(guó)考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)