記憶盒子

把記憶裝進(jìn)灰色的盒子,封裝起來(lái),那年那月,重新拾起。

首頁(yè)搜索目錄
search
當(dāng)前主題: 互聯(lián)網(wǎng)絡(luò)

服務(wù)器性能優(yōu)化策略之啟用網(wǎng)頁(yè)緩存

作者:Kaka    時(shí)間:2012-8-15 0:13:36    瀏覽:    評(píng)論:18

      我站的速度一直以來(lái)都是比較引以自豪的,據(jù)alexa統(tǒng)計(jì),我站平均打開(kāi)時(shí)間是0.274秒,全球有98%的網(wǎng)站速度比我站慢。

      Average Load Time for Webkaka.com

      Very Fast (0.274 Seconds), 98% of sites are slower.

       這雖然更多歸功于較好的服務(wù)器性能以及比較充足的帶寬,但在網(wǎng)站服務(wù)器優(yōu)化方面也是功不可沒(méi)的。

      今天要說(shuō)的是服務(wù)器性能優(yōu)化策略之啟用網(wǎng)頁(yè)緩存。

      網(wǎng)頁(yè)緩存包含客戶端瀏覽器緩存和服務(wù)器緩存,這里說(shuō)的是服務(wù)器端網(wǎng)頁(yè)的緩存,這是服務(wù)器性能優(yōu)化的策略之一。由于本站使用的是IIS服務(wù)器,因此Apache、lighttpd等不在本文內(nèi)容談及之內(nèi)。

      為什么要啟用服務(wù)器緩存?

      有人作了形象的說(shuō)明,緩存就像是一個(gè)大箱子,以頁(yè)面緩存為例,在第一位客戶訪問(wèn)具有緩存機(jī)制的頁(yè)面時(shí),iis會(huì)將該頁(yè)面地址及內(nèi)容記錄下來(lái)放入大箱子中,后續(xù)的客戶在訪問(wèn)該頁(yè)面時(shí),iis直接根據(jù)該地址調(diào)出頁(yè)面內(nèi)容展現(xiàn)在客戶端。這樣減好了訪問(wèn)服務(wù)器的操作,提高了效率。

      動(dòng)態(tài)內(nèi)容頁(yè)面也能緩存

      我以前一直以為,只有靜態(tài)的內(nèi)容頁(yè)面可以緩存,后來(lái)經(jīng)過(guò)實(shí)驗(yàn),動(dòng)態(tài)內(nèi)容頁(yè)面也可以緩存的。比如webkaka的網(wǎng)站速度診斷首頁(yè),有個(gè)最近測(cè)試列表,那10個(gè)網(wǎng)址是實(shí)時(shí)從測(cè)試列表里讀出來(lái)的,但是因采用了1小時(shí)的網(wǎng)頁(yè)緩存,也就是說(shuō),這個(gè)頁(yè)面的內(nèi)容,只是每小時(shí)變化一次,而不是時(shí)時(shí)刻刻都去讀數(shù)據(jù)的。

      動(dòng)態(tài)頁(yè)面也緩存,這樣將大大減少對(duì)服務(wù)器的讀寫(xiě)操作,對(duì)服務(wù)器起了保護(hù)的作用,同時(shí),必將大大減少服務(wù)器內(nèi)存和CPU的使用率,從而提高服務(wù)器的性能。

      IIS設(shè)置網(wǎng)頁(yè)內(nèi)容過(guò)期時(shí)間

      在Google網(wǎng)站速度優(yōu)化建議里,有一條是“使用瀏覽器緩存”技術(shù),這個(gè)其實(shí)不是什么高深的技術(shù),我們?cè)贗IS里便可輕松設(shè)置。

      如下圖

 

      1. 在 IIS 管理器中,單擊“HTTP 頭”選項(xiàng)卡。
      2. 選中“啟用內(nèi)容過(guò)期”復(fù)選框。
      3. 單擊“立即過(guò)期”、“此時(shí)間段后過(guò)期”或“過(guò)期時(shí)間”,然后在對(duì)應(yīng)的框中輸入所需的過(guò)期信息。
      4. 單擊“確定”。

      如何檢測(cè)你的網(wǎng)站是否啟用了緩存?

      你可以到卡卡網(wǎng)的網(wǎng)站速度診斷平臺(tái),診斷你的網(wǎng)站,然后點(diǎn)擊“性能優(yōu)化”標(biāo)簽,再點(diǎn)擊“使用瀏覽器緩存”項(xiàng),便可知道了。

      相關(guān)知識(shí)

      我們?cè)诳淳W(wǎng)頁(yè)的header信息時(shí),經(jīng)??吹竭@幾個(gè)參數(shù):Expires、Cache-Control、Last-Modified、ETag,它們是RFC 2616(HTTP/1.1)協(xié)議中和網(wǎng)頁(yè)緩存相關(guān)的幾個(gè)字段。前兩個(gè)用來(lái)控制緩存的失效日期,后兩個(gè)用來(lái)驗(yàn)證網(wǎng)頁(yè)的有效性。要注意的是, HTTP/1.0有一個(gè)功能比較弱的緩存控制機(jī)制:Pragma,使用HTTP/1.0的緩存將忽略Expires和Cache-Control頭。

      Expires

      Expires字段聲明了一個(gè)網(wǎng)頁(yè)或URL地址不再被瀏覽器緩存的時(shí)間,一旦超過(guò)了這個(gè)時(shí)間,瀏覽器都應(yīng)該聯(lián)系原始服務(wù)器。RFC告訴我們:“由于推斷的失效時(shí)間也許會(huì)降低語(yǔ)義透明度,應(yīng)該被謹(jǐn)慎使用,同時(shí)我們鼓勵(lì)原始服務(wù)器盡可能提供確切的失效時(shí)間。”

      Cache-Control

      Cache-Control字段中可以聲明多些元素,例如no-cache, must-revalidate, max-age=0等。這些元素用來(lái)指明頁(yè)面被緩存最大時(shí)限,如何被緩存的,如何被轉(zhuǎn)換到另一個(gè)不同的媒介,以及如何被存放在持久媒介中的。但是任何一個(gè) Cache-Control指令都不能保證隱私性或者數(shù)據(jù)的安全性。“private”和“no-store”指令可以為隱私性和安全性方面提供一些幫助,但是他們并不能用于替代身份驗(yàn)證和加密。

      Last-Modified

      Last-Modified和ETag是條件請(qǐng)求(Conditional Request)相關(guān)的兩個(gè)字段。如果一個(gè)緩存收到了針對(duì)一個(gè)頁(yè)面的請(qǐng)求,它發(fā)送一個(gè)驗(yàn)證請(qǐng)求詢問(wèn)服務(wù)器頁(yè)面是否已經(jīng)更改,在HTTP頭里面帶上” ETag”和”If Modify Since”頭。服務(wù)器根據(jù)這些信息判斷是否有更新信息,如果沒(méi)有,就返回HTTP 304(NotModify);如果有更新,返回HTTP 200和更新的頁(yè)面內(nèi)容,并且攜帶新的”ETag”和”LastModified”。

      使用這個(gè)機(jī)制,能夠避免重復(fù)發(fā)送文件給瀏覽器,不過(guò)仍然會(huì)產(chǎn)生一個(gè)HTTP請(qǐng)求。

      ETag

      既然有了Last-Modified,為什么還要用ETag字段呢?因?yàn)槿绻谝幻腌娭畠?nèi)對(duì)一個(gè)文件進(jìn)行兩次更改,Last-Modified就會(huì)不正確。因此,HTTP/1.1利用Entity Tag頭提供了更加嚴(yán)格的驗(yàn)證。

x

標(biāo)簽: IIS  

※ 網(wǎng)站速度慢?試試網(wǎng)站自動(dòng)優(yōu)化工具 ※

  • 擴(kuò)展閱讀
上一篇: windows xp iis5.1安裝配置php環(huán)境
下一篇: 作弊了?網(wǎng)站被百度k得只剩下首頁(yè)
  • 13.西*
  • 這個(gè)對(duì)于我使用老美服務(wù)器的人來(lái)說(shuō)非常的好
  • 2012/9/17 7:53:33 回復(fù)該留言
  • 7.好*
  • 有人作了形象的說(shuō)明,緩存就像是一個(gè)大箱子,以頁(yè)面緩存為例,在第一位客戶訪問(wèn)具有緩存機(jī)制的頁(yè)面時(shí),iis會(huì)將該頁(yè)面地址及內(nèi)容記錄下來(lái)放入大箱子中,后續(xù)的客戶在訪問(wèn)該頁(yè)面時(shí),iis直接根據(jù)該地址調(diào)出頁(yè)面內(nèi)容展現(xiàn)在客戶端。這樣減好了訪問(wèn)服務(wù)器的操作,提高了效率。
  • 2012/8/17 11:04:38 回復(fù)該留言
  • 3.萍******
  • 多謝樓主的分享,沒(méi)想到這樣也可以提交網(wǎng)站的訪問(wèn)速度。我的萍鄉(xiāng)生活網(wǎng)按照您的方法也啟用了網(wǎng)頁(yè)緩存,設(shè)置了網(wǎng)頁(yè)內(nèi)容過(guò)期時(shí)間,好像速度快了很多,確實(shí)高明!
  • 2012/8/15 23:08:59 回復(fù)該留言
  • 2.影***
  • 非常感謝樓主,一直對(duì)頁(yè)面緩存方面不是太擅長(zhǎng),看了后非常的感謝!
  • 2012/8/15 17:50:08 回復(fù)該留言

發(fā)表評(píng)論:

◎歡迎參與討論,請(qǐng)?jiān)谶@里發(fā)表您的看法、交流您的觀點(diǎn)。

訂閱博客                   QQ交流群(312716741)

  • 通過(guò)Google訂閱本站 通過(guò)鮮果訂閱本站 通過(guò)抓蝦訂閱本站
  • 通過(guò)QQ郵箱訂閱本站 通過(guò)Yahoo訂閱本站 通過(guò)有道訂閱本站

Search

最新評(píng)論及回復(fù)

最近留言

網(wǎng)站分類

Powered By Z-Blog 1.8 Walle Build 91204 Designed by Han'space

Copyright @2009-2025 All Rights Reserved. 粵ICP備14028160號(hào)-1

Powered By Z-Blog 1.8 Walle Build 91204
Copyright @2009-2025 All Rights Reserved.