<meta http-equiv="Expires" content="0"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-control" content="no-cache"> <meta http-equiv="Cache" content="no-cache">
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 來控制頁面的緩存與否,這里介紹幾個常用的參數:
- no-cache,瀏覽器和緩存服務器都不應該緩存頁面信息;
- public,瀏覽器和緩存服務器都可以緩存頁面信息;
- no-store,請求和響應的信息都不應該被存儲在對方的磁盤系統中;
- must-revalidate,對於客戶機的每次請求,代理服務器必須想服務器驗證緩存是否過時;
Expires過時期限值,GMT格式,指瀏覽器或緩存服務器在該時間點后必須從真正的服務器中獲取新的頁面信息;