Visual RFC.
ALL RFCs / RFC 7239
Read the RFC ↗
RFC 7239 / FORWARDED HTTP REQUESTS

Follow the request through participating proxies

01

A proxy forwards a request on a client’s behalf. Forwarded can report details that would otherwise be hidden by those separate connections.

RFC 7239 · § 4EXAMPLE
4 / 4
Follow the request through participating proxiesFour request-hop scenes use documentation addresses. First client192.0.2.43 sends to P1 with no Forwarded field. P1 appends its observed client for192.0.2.43 when forwarding to P2. P2 appends its observed peer for198.51.100.17 before forwarding to origin; the origin transport peer is P2 at203.0.113.60, not a third for element. A clearly separate alternative has silent P1 and only P2 observation, showing the route can be incomplete. Address disclosure is explicitly opted in; use is optional and request-only.Each participating proxy reports its incoming sideClientP1P2OriginrequestSeparate alternative: P1 emits no fieldfor=198.51.100.17The original client is missing from this listOptional participation ≠ complete route
04
Allow for a missing participant.

In this separate alternative, P1 emits no field. P2 adds only for=198.51.100.17. The original client is missing; do not invent an entry or assume every hop participated.

Source for this drawing: RFC 7239 · Read RFC section 4 ↗

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.

Related RFCs and changes

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

KEY POINT

An entry describes one participating proxy’s incoming side.

  • Forwarded is optional and request-only. Because its information is sensitive, it should be off by default, with each parameter configured individually.
  • When entries are added, the first comes from the first participating proxy; later proxies append after a comma or add a field at the end of the header block. A proxy MAY remove all Forwarded fields.
  • In a fully participating chain, for values identify the client and preceding proxies. The final proxy is visible to the origin as the transport peer; it is not another for entry for itself.
DETAILS

The example explicitly opts in to disclosure of documentation addresses. Not every proxy emits an entry, so this is not a guaranteed complete route. This is HTTP metadata, not a routing command or authentication proof.

Read the RFC section ↗

All chapters in RFC 7239

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 ↗