1. 程式人生 > >關於Cache-Control: no-cache和no-store

關於Cache-Control: no-cache和no-store

在公司上班的正真上班的第一天,發現的jsp頁面上,設定了response HTTP頭,是設定了這三個屬性:
Cache-Control: no-cache,Cache-Control:no-store,Expires
這三個屬性都是和網頁的快取有關。

HTTP1.0

HTTP1.0中通過Pragma 控制頁面快取,通常設定的值為no- cache,不過這個值不這麼保險,通常還加上Expires置為0來達到目的。但是如我們刻意需要瀏覽器或快取伺服器快取住我們的頁面這個值則要設定為 Pragma。

HTTP1.1

HTTP1.1中啟用Cache-Control 來控制頁面的快取與否,這裡介紹幾個常用的引數:

  • no-cache,瀏覽器和快取伺服器都不應該快取頁面資訊;
  • public,瀏覽器和快取伺服器都可以快取頁面資訊;
  • no-store,請求和響應的資訊都不應該被儲存在對方的磁碟系統中;
  • must-revalidate,對於客戶機的每次請求,代理伺服器必須想伺服器驗證快取是否過時

目前Cache-Control請求欄位被各個瀏覽器支援的較好,其優先順序也比較高,當和別的欄位(如Expires)一起用時,會覆蓋其他欄位。

Expires

表示存在時間,允許客戶端在這個時間之前不去檢查(發請求),等同max-age的 效果。但是如果同時存在,則被Cache-Control的max-age覆蓋。 格式: Expires :時間,後面跟一個時間或者日期,超過這個時間後快取失效。也就是瀏覽器發出請求之前,會檢查這個時間是否失效,若失效,則瀏覽器會重新發出請求。