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

Spell node identifiers and quote their boundaries

03

The for and by values use a node identifier: an address, unknown, or an underscore-prefixed opaque label, with an optional port.

RFC 7239 · § 6EXAMPLE
4 / 4
Spell node identifiers and quote their boundariesFour independent node-form comparisons. Plain IPv4 for192.0.2.43 fits a token. IPv6 for2001:db8:cafe::17 requires address brackets inside quoted string; the unquoted attempt stops. Both IPv4 and IPv6 node plus4711 port are quoted as whole values. unknown means preceding identity not known, while underscore req7 is a generated obfuscated label; these are alternatives, not two for parameters in one element. Neither form authenticates the client; port grammar is distinct from endpoint validity.Quote the whole node when syntax requires itfor=unknownPreceding identity is not knownfor=_req7Generated hidden label; underscore requiredSeparate alternatives · neither proves identity
04
Distinguish unknown from a hidden label.

for=unknown reports that the preceding identity is not known. for=_req7 reports a generated opaque identifier. The underscore is mandatory for the obfuscated form; neither authenticates a client.

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

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

Distinguish an address from an unknown or obfuscated node.

  • IPv4 uses address syntax from RFC 3986. IPv6 is enclosed in square brackets and SHOULD follow RFC 5952 text recommendations.
  • An IPv6 value and any node with a port MUST be quoted: colon and brackets are not token characters. Port syntax is one to five digits, or a valid underscore-prefixed obfuscated port.
  • Obfuscated node and port identifiers MUST start with underscore, followed by one or more letters, digits, dot, underscore or hyphen. unknown means the preceding identity is not known; it is not an IP address.
DETAILS

The examples are separate valid alternatives, not duplicate for parameters in one element. Syntax alone does not establish a reachable endpoint or trusted identity. unknown can even have a port identifier; the adding proxy’s owner defines its interpretation. Address disclosure is chosen here, not the default recommendation.

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 ↗