有关Google App Engine缓存代理的详细信息?

时间:2010-10-16 04:12:41

标签: google-app-engine caching

Google App Engine必须具有某种反向缓存代理,因为当我从其中一个servlet设置响应标头Cache-Control public, max-age=300时,对应用引擎的后续请求会显示在日志中,如下所示:{{1} },而非缓存的请求在日志中显示为:/testcaching 204 1ms 0cpu_ms 49kb

无论如何,我的问题是:有没有人有关于这个反向缓存代理的更多细节?

2 个答案:

答案 0 :(得分:19)

我发现有关App Engine的缓存代理的最佳文档是a post to the App Engine group。以下引用的相关部分为后代。归功于Brandon Wirtz:

“如果你想要边缘缓存工作,你需要确保你做了以下事情

  1. 设置公开。如果你没有公开,它就不会被缓存。
  2. 设置最大年龄。如果您设置公开但未指定max-age则不会缓存
  3. 使用逗号。 public, max-age=300工作正常。 Public; max-age=300没有。
  4. 设置年龄大于60. 61似乎缓存。 60没有。可能会根据到期时间缓存一些量,但是我们运行的卷61的61秒似乎缓存,而且似乎没有60。
  5. 设定年龄小于366天。 364天似乎工作。 365大部分时间都有效。 366似乎永远不会起作用。所以那些“永不过期”的帖子让人们谈论永不过期的版本化资产。 10年不是正确的答案。
  6. 使用日期过期似乎没有帮助,并且在某些情况下似乎可能会阻止缓存。我想这可能是时钟漂移。或者关于解析器对日期格式有多挑剔的事情。在浏览器中工作的东西并不总是在edgecache中正常工作......(比如Semi vs the逗号)
  7. 设置Pragma和Cache-Control。如果Pragma未设置为Public,则Cache-Control似乎被忽略。“

答案 1 :(得分:6)