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

标签 python google-app-engine header no-cache

设置缓存控制的正确方法是什么?

有时我看到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")

最佳答案

区别在于使用headers[]会覆盖之前的值,而add_header不会。

来自 wsgiref.headers docs (由 GAE docs 引用),“设置 header 会删除该 header 的任何现有值,然后在包装的 header 列表的末尾添加一个新值。”

关于python - Google App Engine - 用于缓存控制的 headers[] 和 headers.add_header(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114803/

相关文章:

python - 如何在 C# 中返回 python 脚本的 "return value"?

python - Google App Engine Python 的 Pygments 不工作

php - 我如何重定向到 php 中的页面?

python - 有效地在 python 中处理大型 .txt 文件

python - 将给定格式说明符的表数据(卡片图像)读取到 Python 中

google-app-engine - 由于 channel 无缘无故失效而不断断开连接

java - 在 DataStore JPA java-App 引擎中加入查询

java - 在 App Engine 标准 Java 中初始化 Firebase Admin

c++ - Doxygen 包含图

javascript - 当按钮 append 到标题时图标不会改变