Google app engine 谷歌应用引擎不生成304,而是始终生成200

Google app engine 谷歌应用引擎不生成304,而是始终生成200,google-app-engine,caching,Google App Engine,Caching,Google App engine总是为url/test.js和 js不是静态资源,而是动态生成内容的url模式。内容将在N小时后过期,并将生成新内容 我尝试了上次修改、ETag和缓存控制。似乎都不管用 要求 响应头 您的请求具有缓存控制:max age=0,因此任何中间缓存(包括浏览器缓存)都不会提供缓存内容。这可能是您的浏览器中设置的结果 对于带有重新验证标头If-X的请求,您需要有适当的逻辑才能正常工作。为了节省带宽,使用 webapp2和其他框架使用的webob以及。避免计算也取决于你在

Google App engine总是为url/test.js和 js不是静态资源,而是动态生成内容的url模式。内容将在N小时后过期,并将生成新内容

我尝试了上次修改、ETag和缓存控制。似乎都不管用

要求 响应头 您的请求具有缓存控制:max age=0,因此任何中间缓存(包括浏览器缓存)都不会提供缓存内容。这可能是您的浏览器中设置的结果

对于带有重新验证标头If-X的请求,您需要有适当的逻辑才能正常工作。为了节省带宽,使用 webapp2和其他框架使用的webob以及。避免计算也取决于你在做什么,但是


是检查HTTP缓存行为的非常有用的工具。

有关HTTP状态,请参阅以下内容:

200只是正确的HTTP OK状态,对于资源是否是静态的没有任何解释。尝试任何动态网页,比如facebook,你会发现它是200。200的响应是完全正常的

对于304,它未被修改-如w3中所述,304响应不得包含消息体。这不是你想要的

在您的情况下,您应该关注的是为这些http头设置正确的过期时间,在程序代码中执行此操作,以便浏览器始终在过期时间后(例如1小时后)请求内容的新副本:

cache-control:public, max-age=3600
expires:Tue, 20 Oct 2013 18:10:40 GMT

你想做什么?你漏掉了太多细节,不太可能有人猜对了。 cache-control:public, max-age=360000 Content-Length:2 content-type:application/script; charset=utf-8 Date:Fri, 18 Oct 2013 14:10:40 GMT etag:"1B2M2Y8AsgTpgAmY7PhCfg" expires:Tue, 22 Oct 2013 18:10:40 GMT last-modified:Fri, 18 Oct 2013 14:10:40 GMT Server:Development/2.0
cache-control:public, max-age=3600
expires:Tue, 20 Oct 2013 18:10:40 GMT