通用 HTTP header 禁用 server-sided 网络应用程序中的缓存

Common HTTP header to disable cache in server-sided web application

我有一个 php-based 网络应用程序,它对从另一个 CMS 获取的内容进行一些内部缓存。 当编辑者在 CMS 中修改内容然后重新加载 Web 应用程序的网站时,它仍会提供缓存的内容。 (CMS 不知道 Web 应用程序,因此不可能自动使缓存失效。)

现在我想为编辑器添加一种无需缓存即可使用 Web 应用程序的方法。这可以通过 URL GET 参数来完成,就像 TYPO3 使用 no_cache=1 那样。 这需要人工干预。

如果有一个浏览器扩展可以用来切换缓存 on/off,并且只在 GET 请求中注入一个 HTTP header,那就更好了。 Web 应用程序将对此做出反应 header 并在内部禁用缓存。

所以我的问题是:这样的 HTTP header 是否在野外使用?怎么称呼?

是的,有这么一个header:Cache-Control

您可能熟悉将其作为 响应 header,但客户端也可以将其作为 请求 发送header。在您的情况下,您会根据请求设置 Cache-Control: no-cache 。来自 RFC 7234:

The no-cache request directive indicates that a cache MUST NOT use a stored response to satisfy the request without successful validation on the origin server.