詢問關於sending 「304 Not Modified」 for images stored in the in the Google App Engine datastore的問題後,我現在有一個關於Cache-Control
的問題。對於存儲在數據存儲區中的圖像發送「304未修改」時,可以設置「Cache-Control:public」
我的應用程序現在發送Last-Modified
和Etag
,但默認GAE alsto發送Cache-Control: no-cache
。據this page:
的「無緩存」指令,根據 的RFC,告訴它 應該從 緩存提供該頁面之前與服務器重新驗證 瀏覽器。 [...]在實踐中,IE瀏覽器和 Firefox已經開始對待 no-cache指令,就好像它指示 瀏覽器甚至不緩存 頁面一樣。
,因爲我希望瀏覽器緩存圖像,我已經添加了下面一行到我的代碼:
self.response.headers['Cache-Control'] = "public"
根據同一頁面之前:
的「緩存控制:公共「指令 [...]告訴瀏覽器和代理 該頁面可能被緩存。 這對於非敏感頁面很有用, 由於緩存提高了性能。
問題是,這是否會以某種方式危害應用程序?會是最好送Cache-Control: must-revalidate
爲「力」的瀏覽器重新驗證(我想這是最初的背後發送Cache-Control: no-cache
的原因行爲)
該指令堅持認爲, 瀏覽器必須重新驗證 頁面反對服務器在從緩存中提供 之前。請注意,它隱含地讓 讓瀏覽器緩存頁面。
有趣的帖子。 – Emilien 2010-05-06 19:11:26