在html頁頭設定不快取
阿新 • • 發佈:2019-03-15
<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格式,指瀏覽器或快取伺服器在該時間點後必須從真正的伺服器中獲取