如何在GAE中使用Python的cache-control?

1 投票
2 回答
1646 浏览
提问于 2025-04-17 08:34

我在考虑是否要启用缓存头,想知道这样做会有什么不同。现在的代码是这样的,我在想我是否应该启用缓存,以及这样做会有什么效果?

#seconds_valid = 8600
#self.response.headers['Cache-Control'] = "public, max-age=%d" % seconds_valid

self.response.headers['Cache-Control'] = 'no-cache'

如果我把代码改成这样,我能测试出有什么不同吗?

seconds_valid = 8600
self.response.headers['Cache-Control'] = "public, max-age=%d" % seconds_valid

我这样做对吗?启用缓存后到底会发生什么?我还能更新页面吗?

谢谢你

2 个回答

0

设置 Cache-Control 对你的应用程序没有什么影响。这个值只是被网页浏览器使用,缓存只发生在客户端,而不是服务器上。正确的 Cache-Control 值可以减少服务器的负担,节省带宽,因为用户的浏览器会尝试在本地缓存内容,但这和 appengine 没有关系。

如果你想要在服务器端进行缓存,以提高响应速度和减少数据库读取,可以看看 memcached。为了更好地使用 memcache,你可能还需要在网上搜索一些缓存失效的策略。

4

还有AppEngine的缓存反向代理/边缘缓存,它可能会读取你的Cache-Control头信息,如果你设置了max-age并且像你示例中那样设置为public。这个边缘缓存是“尽力而为”的意思,也就是说它并不能保证一定会缓存你的响应。

更多信息可以在这里这里找到。

撰写回答