网站不遵守 Cloudflare 的 Pagerule

网站不遵守 Cloudflare 的 Pagerule

我正在使用 Cloudflare 的页面规则来缓存我的网站上的所有内容(ajax.php 除外)至少 5 天(图像、css、js 缓存 30 天)。

Cloudflare 页面规则

尽管所有网页内容都设置为缓存 5 天,但每次我测试时,我首先得到的当然是 Cloudflare MISS 状态,然后是 Cloudflare HIT 状态,但到期响应标头似乎仅设置在未来 1 小时。

安慰

为什么网站的缓存不符合页面规则?

答案1

没关系。对于 HTTP/1.1 客户端,Cache-Control: max-age=...header 优先于header。请参阅ExpiresMDN 的 Web/HTTP/Headers/Expires

引自RFC2616

如果响应同时包含 Expires 标头和 max-age 指令,则 max-age 指令将覆盖 Expires 标头,即使 Expires 标头的限制性更强

此外,Cloudflare 将仅修改Expires 或者 Cache-Control如果

  • 来自源 Web 服务器的标头的值Cache-Control小于浏览器缓存 TTLCloudflare 设置,或
  • 原始 Web 服务器未发送Cache-ControlExpires标头。

您的网络服务器可能首先发送不同的标头值Cache-ControlExpires

相关内容