Visual RFC.
ALL RFCs / RFC 9211
Read the RFC ↗
RFC 9211 / HTTP CACHE-STATUS

Read cache reports in response order

01

Each cache can append a report, ordered from the origin side toward the user.

RFC 9211 · § 2EXAMPLE
4 / 4
Read cache reports in response orderThree lifelines identify Client left, Edge West center, InnerCache right, with origin beyond inner not contacted. Request moves inward; inner hit report returns to edge; edge appends URI-miss stored report and returns to client. Separate later edge hit retains historical inner report without a new request to inner. List order is origin side first, user side last; quoted comma stays within one identifier.Follow the response · append cache reportsClientEdge, WestInnerCachelater GET /picnicedge serves locallyInnerCache; hit; ttl=120,"Edge, West"; hit; ttl=30Inner report is history · no new inner request
04
Keep earlier history when the edge reuses its stored response.

Separate later request: only Client and the edge exchange traffic. The retained InnerCache member describes the earlier request; the new edge hit report describes this request. Its ttl=30 is an example current value, not the inner cache’s current lifetime.

Source for this drawing: RFC 9211 · Read RFC section 2 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
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.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

A Cache-Status list is a report, not a command to cache.

  • Cache-Status is an HTTP response field whose value is a Structured Fields List. Each member identifies one cache using a String or Token (MUST); its handling parameters are OPTIONAL. A String is quoted text, a Token an unquoted identifier, and an Integer a whole number. Parameters follow semicolons; bare ;hit means Boolean true, while ;hit=?0 means false.
  • The first member represents the cache closest to the origin; the last is closest to the user. A cache adding its report SHOULD preserve the existing value, so earlier reports survive.
  • A cache decides whether and when to send the field. Its absence does not prove that no cache handled the response. Quoted identifiers can contain spaces or commas; do not split the list blindly at every comma.
  • An earlier member can describe handling of an earlier request whose response was stored and reused later. Two hit entries do not prove both caches were contacted by the current request.
DETAILS

Header fragments wrap for display; concatenate them without adding bytes. This is a chosen two-cache route, not a claim that every intermediary reports itself or that every response is cacheable.

Read the RFC section ↗

All chapters in RFC 9211

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗