Emi*_*ien 9 python google-app-engine caching http
在询问有关为存储在Google App Engine数据存储区中的图像发送"304 Not Modified"的问题后,我现在有一个问题Cache-Control.
我的应用程序现在将Last-Modified和Etag,但默认情况下GAE alsto发送Cache-Control: no-cache.根据这个页面:
根据RFC,"no-cache"指令告诉浏览器它应该在从缓存提供页面之前重新验证服务器.[...]实际上,IE和Firefox已经开始处理no-cache指令,就像它指示浏览器甚至不缓存页面一样.
因为我希望浏览器缓存图像,所以我在代码中添加了以下行:
self.response.headers['Cache-Control'] = "public"
Run Code Online (Sandbox Code Playgroud)
根据以前的同一页面:
"cache-control:public"指令[...]告诉浏览器和代理[...]页面可以被缓存.这对非敏感页面很有用,因为缓存可以提高性能.
问题是,这是否会以某种方式对应用程序有害?是否最好发送Cache-Control: must-revalidate"强制"浏览器重新验证(我认为这是最初发送的原因Cache-Control: no-cache)
该指令坚持要求浏览器在从缓存提供服务器之前必须重新验证页面.请注意,它隐式地让浏览器缓存页面.
Cache-Control: public除非您的内容受 HTTP 身份验证或 SSL 保护,否则无需设置。
尝试设置Cache-Control: max-age=nn(其中 nn 是您希望缓存将响应视为新鲜的整数秒数)。AppEngine应删除无缓存。