網站性能優化:cache-control設置詳解

網站性能優化:cache-control設置詳解

不少與網站性能優化相關的帖子,大多隻講了應該怎麼作,應該怎麼設置,沒有太多講這些設置的相關解釋及案例。此文重點介紹網站緩存cache-control,即哪些頁面,哪些資源應該作網站緩存?並用京東的cache-control設置爲案例作參考。php

 

http響應頭信息與搜索引擎蜘蛛,網站速度有着密切關係。經過設置相關頭信息能夠提升搜索引擎蜘蛛及用戶的訪問速度,提高網站有效內容的抓取量.下面重點介紹cache-controlcss

cache-control是用於控制網頁的緩存.常見的取值有private、no-cache、max-age、must- revalidate等,默認爲private。

cache-control有哪些屬性?html

 

其做用根據不一樣的從新瀏覽方式分爲如下幾種狀況:

cache-control瀏覽器

打開新窗口(_blank)緩存

private、no-cache、must-revalidate 再次訪問服務器
Cache-control: max-age=5(表示當訪問此網頁後的5秒內再次訪問不 會去服務器)性能優化

在地址欄回車
值爲private或must-revalidate則只有第一次訪問時會訪問服務器,之後就再也不訪問。
值爲no-cache,那麼每次都會訪問。
值爲max-age,則在過時以前不會重複訪問。服務器

按後退按扭
值爲private、must-revalidate、max-age,則不會重訪問,
值爲no-cache,則每次都重複訪問post

按刷新按扭
不管爲什麼值,都會重複訪問
 性能

cache-control在哪裏設置優化

 

001.gif

在IIS的網站屬性中的http頭信息選項卡中,勾選啓用內容過時後有三個相關選項.

 

1、當即過時

啓用此選項後,每次請求都會向服務器申請下載最新版本。瀏覽器不作緩存處理。狀態返回碼200。Cache信息是:no-cache。這種方式能夠保證客戶端看到的永遠是最新版本,也就是說若是服務器端進行了更新,必定能被客戶端看到。

 

2、此時段後過時與過時時間

這兩種狀況下,瀏覽器緩存將其做用。注意,第一次的狀態是200,同時cache-control爲30天(對應的秒數)。就是說這個網頁會有30天的緩存。因此,然後的狀態都會是304.

 

cache-control應該怎麼設置更好?

對於圖片,css,等長期不變化的內容應該設置較長的過時時間(如180天)

建議:

1.對於js和css能夠獨立到一個二級域名中,啓用GZIP,且設置較長的過時時間

2.對於圖片獨立到另外一個二級域名中,且設置較長的過時時間

對於靜態文件(html)若是長期不更新也能夠設置稍長的過時時間(如30天),須要根據當前網站的實際而定

對於動態文件(php)能夠設置較短的過時時間(如120秒)

 

注意:在過時時間內,若是您對文件內容進行了變化,對於用戶或蜘蛛都不能瀏覽或抓取到你更改後的內容。 這也是動態文件設置較短過時時間的主要緣由。cache-control的設置只是爲了節約搜索引擎蜘蛛資源,讓其抓取更多有效內容,千萬不能弄巧成拙。

 

cache-control設置案例(京東)

京東的html文件大可能是產品及分類頁面,設置的過時時間較短

css文件不是太長,可能因爲是大網站,頁面變化頻率更快。對於不常常變化的css徹底能夠設置更長的過時時間

動態文件,這是京東的新聞內容,因爲是新聞的緣由,可能不常更新,因此反而設置的過時時間比靜態文件長

圖片文件設置了很長的過時時間,若是沒算錯應該是120天。

 

有興趣的能夠仔細研究,京東的大多類型不同的頁面的過時時間都是不一樣的。

相關文章
相關標籤/搜索