为什么 Cloudflare 不缓存具有 Cache-Control: public, max-age=86400 的 HTTP 响应?

问题描述 投票:0回答:1

我们的服务器(原始服务器)正在将以下 HTTP 响应发送回 Cloudflare,包括“Cache-Control: public, max-age=86400”,期望 Cloudflare 缓存它:

HTTP/2 200
日期:2023 年 10 月 24 日,星期二 13:31:00 GMT
内容类型:application/json
缓存控制:公共,最大年龄=86400
到期时间:2023 年 10 月 25 日星期三 13:31:00 GMT
严格传输安全:最大年龄=31536000
x-内容类型-选项:nosniff
最后修改时间:2023 年 10 月 24 日星期二 13:31:00 GMT
变化:接受语言

但是 Cloudflare 随后会向客户端发送以下响应,其中包含“cf-cache-status: DYNAMIC”,表明即使设置了 Cache-Control 和 Expires 标头,它也没有被缓存。

HTTP/2 200
日期:2023 年 10 月 24 日,星期二 13:31:00 GMT
内容类型:application/json
缓存控制:公共,最大年龄=86400
到期时间:2023 年 10 月 25 日星期三 13:31:00 GMT
严格传输安全:最大年龄=31536000
x-内容类型-选项:nosniff
最后修改时间:2023 年 10 月 24 日星期二 13:31:00 GMT
变化:接受语言缓存状态:动态
服务器:cloudflare
cf 射线:81b293ddbb18a780-EZE

知道为什么会发生这种情况吗?

https://developers.cloudflare.com/cache/concepts/default-cache-behavior/中的 Cloudflare 文档指出,“当 Cache-Control 标头设置为 public

时,Cloudflare
缓存资源” max-age
 大于 0。”

我们添加了“Cache-Control: public, max-age=86400”,并将“Expires”标头设置为当前时间后 24 小时,但 Cloudflare 仍然不缓存资源。

http cloudflare cache-control expires-header
1个回答
0
投票
你的网址是什么?

Cloudflare 仅缓存您 URL 中列出的文件扩展名。

例如,如果您的 URL 类似于

*.html

,则默认情况下应将其视为 
DYNAMIC

  • https://developers.cloudflare.com/cache/concepts/default-cache-behavior/#default-cached-file-extensions
如果您想缓存此类资源,您必须使用如下表达式配置缓存规则:

(http.request.uri.path.extension eq "html")


    

© www.soinside.com 2019 - 2024. All rights reserved.