記憶盒子

把記憶裝進灰色的盒子,封裝起來,那年那月,重新拾起。

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

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

作者:Kaka    時間:2012-8-15 0:13:36    瀏覽:    評論:18

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

      Average Load Time for Webkaka.com

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

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

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

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

      為什么要啟用服務器緩存?

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

      動態(tài)內容頁面也能緩存

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

      動態(tài)頁面也緩存,這樣將大大減少對服務器的讀寫操作,對服務器起了保護的作用,同時,必將大大減少服務器內存和CPU的使用率,從而提高服務器的性能。

      IIS設置網(wǎng)頁內容過期時間

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

      如下圖

 

      1. 在 IIS 管理器中,單擊“HTTP 頭”選項卡。
      2. 選中“啟用內容過期”復選框。
      3. 單擊“立即過期”、“此時間段后過期”或“過期時間”,然后在對應的框中輸入所需的過期信息。
      4. 單擊“確定”。

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

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

      相關知識

      我們在看網(wǎng)頁的header信息時,經(jīng)常看到這幾個參數(shù):Expires、Cache-Control、Last-Modified、ETag,它們是RFC 2616(HTTP/1.1)協(xié)議中和網(wǎng)頁緩存相關的幾個字段。前兩個用來控制緩存的失效日期,后兩個用來驗證網(wǎng)頁的有效性。要注意的是, HTTP/1.0有一個功能比較弱的緩存控制機制:Pragma,使用HTTP/1.0的緩存將忽略Expires和Cache-Control頭。

      Expires

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

      Cache-Control

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

      Last-Modified

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

      使用這個機制,能夠避免重復發(fā)送文件給瀏覽器,不過仍然會產(chǎn)生一個HTTP請求。

      ETag

      既然有了Last-Modified,為什么還要用ETag字段呢?因為如果在一秒鐘之內對一個文件進行兩次更改,Last-Modified就會不正確。因此,HTTP/1.1利用Entity Tag頭提供了更加嚴格的驗證。

x

標簽: IIS  

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

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

發(fā)表評論:

◎歡迎參與討論,請在這里發(fā)表您的看法、交流您的觀點。

訂閱博客                   QQ交流群(312716741)

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

Search

最新評論及回復

最近留言

網(wǎng)站分類

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

Copyright @2009-2024 All Rights Reserved. 粵ICP備14028160號-1

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