Google App Engine - headers[] 和 headers.add_header() 用于缓存控制

9 投票
1 回答
2694 浏览
提问于 2025-04-16 00:25

如何正确设置缓存控制?

有时候我看到使用 headers[]

self.response.headers["Pragma"]="no-cache"
self.response.headers["Cache-Control"]="no-cache, no-store, must-revalidate, pre-check=0, post-check=0"
self.response.headers["Expires"]="Thu, 01 Dec 1994 16:00:00"

其他时候,我看到使用 headers.add_header()

self.response.headers.add_header("Pragma","no-cache")
self.response.headers.add_header("Cache-Control","no-cache, no-store, must-revalidate, pre-check=0, post-check=0")
self.response.headers.add_header("Expires","Thu, 01 Dec 1994 16:00:00")

还有时候,两者 headers[] 和 headers.add_header() 混合在一起使用

self.response.headers["Pragma"]="no-cache"
self.response.headers.add_header("Cache-Control","no-cache, no-store, must-revalidate, pre-check=0, post-check=0")
self.response.headers.add_header("Expires","Thu, 01 Dec 1994 16:00:00")

1 个回答

10

这两者的区别在于,使用 headers[] 会把之前的值覆盖掉,而 add_header 则不会。

根据 wsgiref.headers 的 文档(这个文档在 GAE 文档中提到过),"设置一个头部会删除该头部之前的所有值,然后在头部列表的末尾添加一个新的值。"

撰写回答