Default cache behavior
import { GlossaryTooltip, Render, DashButton } from "~/components"
Cloudflare respects the origin web server’s cache headers in the following order unless an Edge Cache TTL cache rule overrides the headers. Refer to the Edge TTL section for details on default TTL behavior.
- Cloudflare does not cache the resource when:
- The
Cache-Controlheader is set toprivate,no-store,no-cache, ormax-age=0. - The Set-Cookie header exists.
- The HTTP request method is anything other than a
GET.
- The
- Cloudflare does cache the resource when:
- The
Cache-Controlheader is set topublicandmax-ageis greater than 0. - The
Expiresheader is set to a future date.
- The
:::note
Cloudflare does cache the resource even if there is no Cache-Control header based on status codes.
:::
:::note
If both max-age and an Expires header are set, max-age will be used by Cloudflare.
:::
When Origin Cache Control is enabled on an Enterprise customer’s website, it indicates that Cloudflare should strictly respect Cache-Control directives received from the origin server. Free, Pro and Business customers have this feature enabled by default. For a list of directives and behaviors when Origin Cache-Control is enabled or disabled, refer to Cache-Control directives.
Client-side range requests
Clients can use the HTTP Range header to request part of a file. Cloudflare can serve these requests from complete or partial cached files. Response behavior depends on the request method, range syntax, conditional headers, content encoding, and cache eligibility.
For complete response and origin requirements, refer to Range request behavior.
Request collapsing
When multiple requests arrive simultaneously at a single Cloudflare data center for the same asset that is not in cache (a cache miss), Cloudflare uses a cache lock to avoid sending duplicate requests to your origin. Only the first request is forwarded to the origin to fetch the asset. The remaining requests wait for the first request to complete, after which the response is streamed to all waiting requests.
The cache lock ensures that Cloudflare only sends one request at a time to the origin for a given asset from a single location in Cloudflare's network, preventing the origin from receiving excessive traffic.
Default cached file extensions
Cloudflare only caches based on file extension and not by MIME type. The Cloudflare CDN does not cache HTML or JSON by default. Additionally, by default Cloudflare caches a website's 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 | SVGZ | WOFF2 | ||
| CLASS | EXE | JS | PICT | SWF | XLS | |
| CSS | FLAC | MID | PLS | TAR | XLSX |
To cache additional content, refer to Cache Rules to create a rule to cache everything.
<Render file="edge-ttl" product="cache" params={{ conditional: "dedicated-cache-tile" }} />
Customization options and limits
Cloudflare’s CDN provides several cache customization options:
- Caching behavior for individual URLs via Cache Rules
- Customize caching with Cloudflare Workers
- Adjust caching level, cache TTL, and more in the Caching page in the Cloudflare dashboard:
Upload limits
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
| Availability | Yes | Yes | Yes | Yes |
| Max upload size | 100 MB | 100 MB | 200 MB | Up to 5 GB |
Customers can adjust the Maximum Upload Size from the zone's Network page. Enterprise customers can self-serve any value up to 5 GB. Uploads larger than 5 GB require additional configuration — contact your account team or Cloudflare Support.
:::note Very large uploads take longer to transfer. Requests that exceed the connection or read timeout can fail mid-upload before reaching the size limit — a failure that may look unrelated to Maximum Upload Size. If you raise the limit substantially, make sure your clients and origin allow enough time for the full transfer. :::
If you require a larger upload, you can group requests into smaller chunks, upload the full resource through a DNS-only (unproxied) DNS record or upgrade your plan.
Cacheable size limits
Cloudflare cacheable file limits:
- Free, Pro and Business customers have a limit of 512 MB.
- For Enterprise customers the default maximum cacheable file size is 5 GB. Contact your account team or Cloudflare Support to request a limit increase.
When does Cloudflare cache successfully?
The connection status between visitors and Cloudflare can vary, affecting whether Cloudflare caches the content or not. If Cloudflare has already established a connection to the origin and started fetching the content, it will continue to retrieve and cache the entire content, even if the visitor disconnects midway. However, if a visitor disconnects before the origin responds to Cloudflare's request, no content will have been fetched yet, so Cloudflare will not start caching the content.
谢谢你的反馈!