IIS設定靜態內容快取時間

2021-06-26 08:23:01 字數 2121 閱讀 6959

關於iis設定靜態內容快取時間,在這裡給大家介紹一下:我們的**中往往包含大量的頁面元件,比如、樣式表檔案、js指令碼檔案和flash動畫。這些元件的變化頻率非常低,尤其是那些構成**基本框架的元件,

幾乎不會發生變化。我們可以將這些變化率很低的元件看作靜態內容,利用iis的內容過期機制和瀏覽器的本地快取機制將它們在訪問者的電腦硬碟中儲存一段時間。

當訪問者訪問你的**時,如果這些存在本地的靜態內容沒有過期,瀏覽器會從本地硬碟中裝載,而不去向伺服器發出請求。

如果你使用fiddler這樣的工具跟蹤網頁訪問,你會清楚地看到雖然只是訪問乙個頁面,但是發出的http請求和應答卻不止乙個。網頁中的每張,每個

而使用了內容過期機制後可以就實現這樣的目的,這就是使用內容過期機制的意義。

大多數的web開發者都玩過iis 6或iis 7,但是又有多少人仔細觀察過http headers或http response headers標籤中的內容呢?此處我以iis 6 為例,

預設情況下此標籤中的介面如下圖:

此時,如果向該**的乙個網頁發出請求,該網頁中包含了一張的鏈結,那麼在獲取到該網頁的html文件之後,瀏覽器會繼續對這張發出請求,該請求的響應在http response header中如下表達:

http/1.1 200 ok (表示伺服器找到了此並正確響應)

date:thu, 04 feb 2010 08:25:38 gmt (響應的時間,格林尼治時間)

last-modified:wed, 03 jan 2009 01:55:06 gmt(最後被修改的時間,格林尼治時間)

這張會被瀏覽器儲存在本地硬碟的ie臨時資料夾中。使用同乙個瀏覽器視窗在同乙個會話中再次訪問到這個頁面,

則頁面中的元件都不再重新請求。

當在這台機器上開啟另乙個瀏覽器視窗(另乙個會話)又一次訪問此頁面時,由於這張圖已經在本地儲存了,但是瀏覽器

剛才的響應中並沒有規定內容的過期機制,因此瀏覽器仍會向伺服器發出一次請求:

if-modified-since: wed, 03 jan 2009 01:55:06 gmt (詢問伺服器,我本地這張的最後修改時間是這個,在此時間之後你那有沒有更新的版本?)

if-none-matched: "abdkfkdkdkdjkjkfkfd" (這是一段etag編碼,是伺服器端給該元件的唯一標示)

http/1.1 304 not modified (請求的找到了,並且沒有被改變過)

date:thu, 04 feb 2010 08:25:38 gmt (響應的時間)

由此可見,iis http headers標籤的預設設定是不禁止瀏覽器快取的,但是也沒有告訴元件儲存過期的時間,因此瀏覽器將元件儲存在本地後,

並沒有減少向伺服器發出請求的次數,請求和響應依然耗費了時間。

http/1.1 200 ok (表示伺服器找到了此並正確響應)

cache-control: max-age=86400 (從本次請求時間算起,允許該在本地快取86400秒)

date: sat, 14 may 2011 08:09:29 gmt (響應的時間,格林尼治時間)

於是,只要是在1天之內,使用本機的瀏覽器開啟這個網頁,都不會再對這張發出請求,而是直接使用本地快取中的這張。可見,減少了不必要的http請求,

提高了網頁的響應速度。

http/1.1 200 ok (表示伺服器找到了此並正確響應)

date: sat, 14 may 2011 08:50:12 gmt(響應的時間,格林尼治時間)

expires: mon, 23 may 2011 16:00:00 gmt (該的本地快取到2023年5月23日16點為止,格林尼治時間)

那麼這意味著只要在5月23日16點之前,在本機上訪問該網頁,都不會再對此發出請求。

有人擔心如果這樣設定過期機制,一旦對這些元件做了更新,訪問者將不能收到變化,那豈不是也很遺憾。其實這有兩方面的解決方式:

就應該使元件擁有新的名稱,於是瀏覽器會發現本地沒有對這個元件快取過,自然就會發起請求。

另一方面,訪問者可以通過瀏覽器的重新整理功能強制對網頁中的元件重新發起請求。即使設定了過期機制,瀏覽器的重新整理功能仍然會對所有頁面元件

發出請求的。

總結,本文的目的就是闡釋瀏覽器本地快取與web伺服器快取過期機制之間的互動關係,以及如何通過這種方式達到對效能的提公升。

如何設定靜態內容快取時間

今天來說說 頁面優化建議 裡的 設定靜態內容快取時間 項。怎麼設定快取?因為自己是win2003,所以這裡就以iis6來做說明。首先看看我 之前的提示。提示這些內容可以設定快取,以減少客戶端再次載入的時間。快取是什麼?實現的效果就是使用者多次訪問時會大大提公升速度。當然,快取的一般只能是,js,cs...

如何設定IIS快取

1.測試,可以快取整個share工程 經測試iis中的快取測試對aspx頁面不起作用,估計與頁面壓縮的設定原理一樣 2.需要設定快取的工程 share,portal 根據iis日誌分析報告中的 most requested directories 得出 3.設定的方法 第一步 開啟 iis 配置管理...

設定IIS快取的方法

1.測試,可以快取整個share工程 經測試 iis中的快取測試對 aspx頁面不起作用,估計與頁面壓縮的設定原理一樣 2.需要設定快取的工程 share,portal 根據iis 日誌分析報告中的 most requested directories 得出 3.設定的方法 第一步 開啟 iis 配...