2011年7月6日 星期三

How To:使用Header控制網頁快取。

剛退伍時,曾被快取搞過一陣子。哪時候根本連http怎麼動都還不曉得。

後來還是乖乖的認真的k了http協定和努力的寫asp.net才覺得自已應該算懂了。畢竟學海無涯,任何學問我都不敢說自已經精通了。瀏覽器要控制某個網頁的快取情況主要是透過Cache-Control 這個respone的header。這個header的參數網路上人整理好了:


參數 說明
public:資料內容被保存下來,包含有密碼保護的網頁也一樣,相對安全性較低。
private:資料內容只能被儲存到私有的caches中,即non-shared caches中。
no-cache:資料內容不被儲存,當伺服器、瀏覽器讀到此header時就不會把資料儲存至caches中。
no-store:資料內容除了不能儲存至caches中之外,也不能被儲存至暫存的硬碟中,以防止重要資料被竊取。
must-revalidate:客戶端在每次讀取資料時,會再次和原來的服務器確認是否為最新的資料,而不再透過中間的proxy server。
proxy-revalidate:跟must-revalidate相似,不過中間接收的proxy server可以相正分享caches。
max-age=xxx:資料內容在經過xxx秒數後就會失效,這個功能跟Expiress相同,不過max-age只能服務在 HTTP/1.1的協定中。如果Expires跟max-age(Cache-control)同時共用時,max-age有較高的優先權。

以上,這樣以後要查就方便多了。

沒有留言:

張貼留言