Skip to content

add(considered): Cache-Status is standardised but not the default anywhere - #171

Draft
jdevalk wants to merge 1 commit into
mainfrom
add/considered-cache-status-2026-08-09
Draft

add(considered): Cache-Status is standardised but not the default anywhere#171
jdevalk wants to merge 1 commit into
mainfrom
add/considered-cache-status-2026-08-09

Conversation

@jdevalk

@jdevalk jdevalk commented Aug 9, 2026

Copy link
Copy Markdown
Owner

What changed

Adds one entry to src/content/considered/cache-status.md, filed too-early. No spec page, no changelog entry (a /considered/ entry is not spec content).

Why now

Mark Nottingham published Informing HTTP Extension Design with Data on 7 August 2026 — a cc-lint survey of 120 million responses across ~50,000 sites in the Tranco top 100,000. The daily scan already mined it for the X-XSS-Protection figure; the un-mined finding is the cache-header gap:

  • Cache-Status (RFC 9211): ~1.1 million instances
  • Proprietary equivalents (X-Cache, CF-Cache-Status, …): tens of millions
  • Proxy-Status (RFC 9209): ~7,900 instances

So the standardised header exists, is finished, and is losing to the incumbents by roughly thirtyfold.

Primary sources

Why turned down rather than specced

Two reasons, both in the entry:

  1. Adoption. Squid and Caddy's cache handler have built-in support and Fastly can be made to emit it with a recipe, but Cloudflare still leads with CF-Cache-Status and nginx has no native path. A reader following our advice would hand-configure a header their CDN does not produce.
  2. Two vocabularies for one cache. Server-Timing is precedent for an observability header at optional, so the shape is not disqualifying — but Server-Timing has no incumbent and this does.

revisit: a default-on implementation at a CDN with real market share (Cloudflare emitting Cache-Status, or Fastly without a VCL recipe); nginx shipping it would count too.

Open question for the maintainer

This is a thin-adoption call, which per ops/routines/daily-standards-scan.md is yours, not the scan's. If you read ~1.1M instances plus Squid/Caddy as enough adoption, say so and I'll write the page instead and drop this entry in the same PR.

Checks

npm run build, npm run lint, npm run format:check and npm run check:skill all pass. Entry renders at /considered/.

🤖 Generated with Claude Code

…where

RFC 9211 gives every cache on the path one vocabulary for hit/miss/ttl,
replacing CF-Cache-Status, X-Cache and friends. It has been Standards
Track since June 2022 and its authors work at Cloudflare, Akamai and
Fastly — but Nottingham's August 2026 survey of 120M responses found
~1.1M Cache-Status instances against tens of millions of proprietary
equivalents. Squid and Caddy ship it; Cloudflare and nginx do not.

Recommending it today would have readers hand-configure a header their
CDN does not emit, alongside the proprietary one it does. Turned down
on adoption grounds per the routine; recorded rather than dropped.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying specification-website with  Cloudflare Pages  Cloudflare Pages

Latest commit: 9e809ae
Status: ✅  Deploy successful!
Preview URL: https://b16cf352.specification-website.pages.dev
Branch Preview URL: https://add-considered-cache-status.specification-website.pages.dev

View logs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant