HTML的HTTP協議頭信息中控制著頁面在幾個地方的緩存信息,包括瀏覽器端,中間緩存服務器端(如:squid等),Web服務器端。本文討論頭信息 中帶緩存控制信息的HTML頁面(JSP/Servlet生成好出來的也是HTML頁面)在中間緩存服務器中的緩存情況.HTTP協議中關于緩存的信息頭關鍵字包括Cache-Control(HTTP1.1),Pragma(HTTP1.0),last-Modified,Expires等。
HTTP1.0中通過Pragma 控制頁面緩存,可以設置:Pragma或no-cache。網上有非常多的文章說明如何控制不讓瀏覽器或中間緩存服務器緩存頁面,通常設置的值為no- cache,不過這個值不這么保險,通常還加上Expires置為0來達到目的。但是如我們刻意需要瀏覽器或緩存服務器緩存住我們的頁面這個值則要設置為 Pragma。
HTTP1.1中啟用Cache-Control 來控制頁面的緩存與否,這里介紹幾個常用的參數:1,no-cache,瀏覽器和緩存服務器都不應該緩存頁面信息.
2,public,瀏覽器和緩存服務器都可以緩存頁面信息.
3,no-store,請求和響應的信息都不應該被存儲在對方的磁盤系統中.
4,must-revalidate,對于客戶機的每次請求代理服務器必須想服務器驗證緩存是否過.
5,Last-Modified只頁面的最后生成時間,GMT格式.
怎樣設置網站的瀏覽器Cache-Control:
cache-control是用于控制網頁的緩存.常見的取值有private、no-cache、max-age、must- revalidate等,默認為private。
1,在地址欄回車值為private或must-revalidate則只有第一次訪問時會訪問服務器,以后就不再訪問。值為no-cache,那么每次都會訪問。值為max-age,則在過期之前不會重復訪問。
2,按后退按扭值為private、must-revalidate、max-age,則不會重訪問,值為no-cache,則每次都重復訪問.
3,按刷新按扭無論為何值,都會重復訪問.
|