Read identifiers and parameters
02CDN-Loop is a comma-separated list of cdn-info entries. Each starts with a CDN identifier and can carry semicolon-separated key=value parameters. An identifier can use uri-host with an optional port, or a token pseudonym. Commas inside quoted parameter values do not separate entries. All examples use reserved fictional names.
The field contains two CDN entries, a.example and b.example. The trace parameter’s quoted one,two value remains one value and does not create a third entry.
Source for this drawing: RFC 8586 · Read RFC section 2 ↗
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-info
- One CDN identifier together with any parameters belonging to that entry.
- Pseudonym
- A substitute identifier using HTTP token syntax, chosen to avoid accidental collisions.
- OWS
- Optional whitespace under the imported HTTP grammar; a separate rule from token.
- Quoted string
- A double-quoted HTTP value whose internal commas are data rather than list separators.
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Parse the list and quoted values before counting CDN identifiers.
- The grammar is CDN-Loop = #cdn-info; cdn-info = cdn-id *( OWS ";" OWS parameter ); cdn-id = ( uri-host [ ":" port ] ) / pseudonym; pseudonym = token.
- For a hostname identifier, use a hostname under the CDN’s control; hostnames are preferred to reduce accidental collisions. Carefully choose pseudonyms to avoid collisions.
- A pseudonym token cannot contain whitespace, double quotes, or delimiter characters such as comma, slash, colon or semicolon. A colon can occur in the separate host-and-port form.
- Parameters are token = token-or-quoted-string with no whitespace around the equals sign in the imported grammar. Use quoting where a value is not a token; the comma in trace="one,two" is data.
- Verified erratum5704 clarifies that token, OWS, uri-host and port are separate imported ABNF rules. The # list form permits an empty list; sender and recipient handling of empty elements follows the imported HTTP rules.
These examples are not a complete CDN-Loop parser or an identity-normalization algorithm. In particular, do not count an identifier merely because its spelling occurs inside a parameter value.
Read the RFC section ↗