Expose useful diagnostics carefully
05Keys and implementation details help debugging but can expose sensitive cache behavior.
A proxy’s local400 is not based on a stored response, so the pictured choice follows SHOULD NOT append. A304or206based on a stored response is a different permitted situation, not a blanket prohibition on local status codes.
Source for this drawing: RFC 9211 · Read RFC section 2.7 ↗
New to this? Start hereA quick picture + helpful background
A request starts a conversation.
A client asks for a resource. A server sends a response. The method, address, headers, and status explain what that conversation means.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Diagnostic information is neither a portable policy nor an access grant.
- key is a String representation of the implementation-specific cache key. detail is a String or Token with semantics specific to the sending cache. The same detail value from two caches can mean different things.
- Cache-Status can help attackers probe stored data, activity and key construction, including cache-poisoning opportunities. Merely obfuscating the cache key does not remove that risk.
- The RFC describes options: omit the field, send it only to authorized clients, or restrict sensitive parameters such as key. It does not mandate public diagnostics or define an authorization scheme.
- An intermediary SHOULD NOT append its report to locally generated responses unless based on a stored response. A local malformed-request400 is different from a stored-response-based304or206.
- New interoperable parameters can be registered through expert review in the HTTP Cache-Status registry. A specification is appreciated, not required. Do not treat an arbitrary detail string as a standardized extension.
No real cache keys, users or debug permissions are tested. The guide teaches RFC9211reporting; it does not authenticate cache reports, change cache policy or claim a complete Structured Fields implementation.
Read the RFC section ↗