天天看點

“Cache-control”常見的取值有private、no-cache、max-age、must-revalidate

<a href="http://www.cnblogs.com/yinhaiming/articles/1490811.html">http://www.cnblogs.com/yinhaiming/articles/1490811.html</a>

<a href="http://www.cnblogs.com/yinhaiming/articles/1490811.html">Expires和max-age的差別</a>

網頁的緩存是由HTTP消息頭中的“Cache-control”來控制的,常見的取值有private、no-cache、max-age、must-revalidate等,預設為private。其作用根據不同的重新浏覽方式分為以下幾種情況:

(1) 打開新視窗

如果指定cache-control的值為private、no-cache、must-revalidate,那麼打開新視窗通路時都會重新通路伺服器。而如果指定了max-age值,那麼在此值内的時間裡就不會重新通路伺服器,例如:

Cache-control: max-age=5

表示當通路此網頁後的5秒内再次通路不會去伺服器

(2) 在位址欄回車

如果值為private或must-revalidate(和網上說的不一樣),則隻有第一次通路時會通路伺服器,以後就不再通路。如果值為no-cache,那麼每次都會通路。如果值為max-age,則在過期之前不會重複通路。

(3) 按後退按扭

如果值為private、must-revalidate、max-age,則不會重通路,而如果為no-cache,則每次都重複通路

(4) 按重新整理按扭

無論為何值,都會重複通路

當指定Cache-control值為“no-cache”時,通路此頁面不會在Internet臨時文章夾留下頁面備份。

另外,通過指定“Expires”值也會影響到緩存。例如,指定Expires值為一個早已過去的時間,那麼通路此網時若重複在位址欄按回車,那麼每次都會重複通路:

Expires: Fri, 31 Dec 1999 16:00:00 GMT

在ASP中,可以通過Response對象的Expires、ExpiresAbsolute屬性控制Expires值;通過Response對象的CacheControl屬性控制Cache-control的值,例如:

Response.ExpiresAbsolute = #2000-1-1# ' 指定絕對的過期時間,這個時間用的是伺服器當地時間,會被自動轉換為GMT時間

Response.Expires = 20 ' 指定相對的過期時間,以分鐘為機關,表示從目前時間起過多少分鐘過期。

Response.CacheControl = "no-cache"

Expires值是可以通過在Internet臨時檔案夾中檢視臨時檔案的屬性看到.

繼續閱讀