Visual RFC.
ALL RFCs / RFC 8586
Read the RFC ↗
RFC 8586 / Forwarding without loops

Recognize a returning request

01

A Content Delivery Network (CDN) forwards requests on behalf of an origin service. If CDN A forwards to CDN B and a bad route sends B back to A, repeated forwarding can form a loop. CDN-Loop records CDN identifiers so a participant can notice an earlier visit. The names and stopping policy here are fictional examples.

RFC 8586 · § 2EXAMPLE
3 / 3
Recognize a returning requestA fictional request has reached CDN A. A first adds a.example and forwards to B. B preserves A and adds b.example, then an erroneous route returns the request to A. The final state keeps that arrived return distinct from a new A-to-B attempt, which stops under an explicitly illustrative local policy. There is no mandated one-visit threshold, HTTP error code, authenticated history or claim that all CDN requests must be forwarded.Example routing error · A → B → ACDN ACDN Breturn already arrivedanother forwardA sees its own a.example entryCDN-Loop: a.example, b.exampleExample policy: stop on this returnNot a universal RFC threshold or response code
03
Stop a further forwarding attempt

The returned request has already arrived at A. A sees a.example in the field; this example’s policy stops a new A-to-B forward. No particular response code or universal one-visit limit is implied.

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

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

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
CDN
Content Delivery Network: an intermediary service that can handle and forward requests in front of an origin.
Origin
The service for which a CDN handles requests.
Forwarding loop
A routing cycle in which a request returns to an earlier forwarding participant.
Related RFCs and changes

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

KEY POINT

A CDN can inspect the recorded identifiers before forwarding again.

  • Conforming CDNs SHOULD add a cdn-info entry to CDN-Loop in all requests they generate or forward, creating the field when necessary.
  • The field is intended to help a CDN identify that an incoming request has already passed through its servers.
  • RFC8586 does not specify a universal visit threshold, detection algorithm or HTTP error status. Stopping on the first observed return is this example’s local policy, not a new RFC requirement.
  • A client can generate this field, so recorded identifiers are not authenticated proof of actual visits.
DETAILS

A request can arrive successfully yet be stopped from being forwarded again. A repeated identifier is a signal for a policy decision, not a cryptographic fact.

Read the RFC section ↗

All chapters in RFC 8586

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 ↗