0
我有一個用PHP生成的經典html頁面。用於緩存動態頁面的Http標頭
對於此頁面(從同一個URL提供服務),我們有兩種情況:
- 用戶登錄(基於cookie)=>此頁面是特定於用戶(我們顯示與用戶名框+個人信息。)
- 用戶未登錄=>該頁面對所有用戶都是通用的。
如何設置的標頭:
- 有最侵略性緩存(與60最大年齡)。
- 避免在用戶之間混合頁面。
我可以取代我現在頭:
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
有了這個?
header('Cache-Control: public, max-age=60');
header('Vary: *');
編輯:是否有可能(如何)在「1」和公衆的情況下,「2」
保重!它並不那麼容易:IE不會緩存Vary頭和任何字段的資源[但Accept-Encoding和User-Agent](http://code.google.com/speed/page-speed/docs/caching.html) – alienhard 2011-04-12 19:16:02
如果您不包含Vary頭文件,則會遇到安全問題。 IE具有根本沒有的方式來處理這種類型的設置的高速緩存,其中所述URL是相同的,但含量變化的基礎上的cookie的值(被記錄在或不即用戶)。 – ajsutton 2011-04-12 19:24:38
是的,但我認爲它的錯誤的方式來嘗試解決這個問題因人而異用(除非你有沒有IE的用戶較少的情況下)。一個好的解決方案是根據不同的情況提供不同的頭文件:1)發送阻止緩存的頭文件; 2)發送頭文件以允許緩存。在這兩種情況下都不需要Vary。 – alienhard 2011-04-12 20:16:21