删除 HTTP 标头“Cache-control”时遇到问题

删除 HTTP 标头“Cache-control”时遇到问题

我正在尝试使用 Cloudflare 缓存我的资产
Cloudflare 状态在这里“如果您的服务器没有缓存和私有标头,CloudFlare 将不会缓存您的网站或静态内容”

正如您从我的文件响应中看到的,Cache-control: no-cache="set-cookie"正在通过:
https://redbot.org/?uri=http%3A%2F%2Fdev.shareasimage.com%2Fstatic%2Fapp%2Fimages%2Fads%2Fts.ad.png

我尝试使用删除它Header unset Cache-control,但没有成功

有人遇到过这种情况吗?

答案1

我猜你遇到了一个错误,因为你有两个不同的大写字母Cache-Control

Cache-Control: max-age=259200, no-cache="set-cookie"
Cache-control: no-cache="set-cookie"

HTTP 标头不区分大小写,但您可能遇到过一种奇怪的边缘情况,即当 Apache 找到与您要删除的内容匹配的内容时,它会停止查找 - 因此第一个Cache-Control会被删除,而 则Cache-Control不会。

要么找到您的配置或代码中Cache-control设置标头的位置,并将其完全大写Cache-Control(然后Header unset Cache-Control应该删除这两个值),要么让 Apache 搜索匹配的不区分大小写的名称两次,希望这能起作用:

Header unset Cache-Control
Header unset Cache-control

答案2

我没有提到我的服务器位于 AWS 上的负载均衡器后面。AWS
ELB(他们称之为负载均衡器)有一个设置调用,stickiness
当你打开它时,他们会设置一个 cookie 以确保访问者始终被发送到同一台服务器

这会产生额外的副作用,即在服务器满足请求后添加以下标头:
Cache-control: no-cache="set-cookie"

我需要关闭粘性以防止设置此标题

回想起来,我应该更详细地描述我的设置,以帮助调试这个问题,
谢谢你的帮助,Shane

答案3

你正在使用 mod_session 吗?

这里有一个错误:

https://bz.apache.org/bugzilla/show_bug.cgi?id=61161

相关内容