跳转到内容
搜索文档

默认缓存行为

最后更新 查看 MarkdownAgent 设置

除非 Edge Cache TTL cache rule 覆盖标头,否则 Cloudflare 按以下顺序遵循源站 Web 服务器的 cache 标头。有关默认 TTL 行为的详情,请参阅 Edge TTL 部分。

  • 在以下情况下,Cloudflare 不会缓存资源:
    • Cache-Control 标头设置为 privateno-storeno-cachemax-age=0
    • 存在 Set-Cookie 标头
    • HTTP 请求方法不是 GET
  • 在以下情况下,Cloudflare 缓存资源:
    • Cache-Control 标头设置为 publicmax-age 大于 0。
    • Expires 标头设置为未来日期。

当 Enterprise 客户的网站启用 Origin Cache Control 时,表示 Cloudflare 应严格遵循从源站服务器收到的 Cache-Control 指令。Free、Pro 和 Business 客户默认启用此功能。有关启用或禁用 Origin Cache Control 时的指令和行为列表,请参阅 Cache-Control directives

客户端 Range 请求

客户端可以使用 Range 标头发送 range 请求以从缓存提供内容。请注意:

  • 如果源站响应包含 Content-Length 标头,则指定的字节范围将以 HTTP 206 响应返回。
  • 如果源站响应不包含 Content-Length 标头,缓存将以 HTTP 200 响应返回完整内容。

请求合并

当多个请求同时到达单个 Cloudflare 数据中心请求同一未缓存资源(缓存未命中)时,Cloudflare 使用cache lock避免向源站发送重复请求。只有第一个请求会转发到源站获取资源。其余请求等待第一个请求完成,之后响应会流式传输到所有等待的请求。

cache lock 确保 Cloudflare 在 Cloudflare 网络中单个位置对给定资源每次只向源站发送一个请求,防止源站收到过多流量。

默认缓存的文件扩展名

Cloudflare 仅基于文件扩展名缓存,而非 MIME 类型。Cloudflare CDN 默认不缓存 HTML 或 JSON。此外,Cloudflare 默认缓存网站的 robots.txt。

7Z CSV GIF MIDI PNG TIF ZIP
AVI DOC GZ MKV PPT TIFF ZST
AVIF DOCX ICO MP3 PPTX TTF
APK DMG ISO MP4 PS WEBM
BIN EJS JAR OGG RAR WEBP
BMP EOT JPG OTF SVG WOFF
BZ2 EPS JPEG PDF SVGZ WOFF2
CLASS EXE JS PICT SWF XLS
CSS FLAC MID PLS TAR XLSX

要缓存更多内容,请参阅 Cache Rules 创建规则以缓存所有内容。

Edge TTL

默认情况下,当不存在 cache-control 指令或 expires 响应标头时,Cloudflare 会按以下 Edge Cache TTL 缓存某些 HTTP 响应码。

HTTP status code Default TTL
200, 206, 301 120m
302, 303 20m
404, 410 3m

所有其他状态码默认不缓存。

自定义选项和限制

Cloudflare 的 CDN 提供多种 cache 自定义选项:

Go to Cache Rules ↗
  • 使用 Cloudflare Workers 自定义缓存
  • 在 Cloudflare 仪表板的 Caching 页面调整缓存级别、cache TTL 等:
Go to Configuration ↗

上传限制

FreeProBusinessEnterprise

Availability

Yes

Yes

Yes

Yes

Max upload size

100 MB

100 MB

200 MB

500+ MB

客户可以从 区域的 Network(网络) 页面减少 Maximum Upload Size(最大上传大小)

如果需要更大的上传,可以将请求分组为较小的块,通过 DNS-only(未代理)DNS 记录上传完整资源,或升级计划

可缓存大小限制

Cloudflare 可缓存文件限制:

  • Free、Pro 和 Business 客户限制为 512 MB。
  • Enterprise 客户默认可缓存文件大小最大为 5 GB。请联系账户团队请求提高限制。

Cloudflare 何时成功缓存?

访客与 Cloudflare 之间的连接状态可能不同,影响 Cloudflare 是否缓存内容。如果 Cloudflare 已建立与源站的连接并开始获取内容,即使访客中途断开连接,它也会继续检索并缓存整个内容。但是,如果访客在源站响应 Cloudflare 请求之前断开连接,尚未获取任何内容,因此 Cloudflare 不会开始缓存内容。

这篇文档对您有帮助吗?