Visual RFC.
ALL RFCs / RFC 3986
Read the RFC ↗

RFC 3986 / START HERE

URI syntax, before the details

URI: Uniform Resource Identifier

A URI identifies a resource using a structured string. Familiar web addresses are examples; schemes, hosts, paths, and other parts give the string its meaning.

The idea in one picture

  1. An identifier names a resource

  2. Its parts are interpreted

  3. A reference can be resolved

A simplified picture of the idea; the chapters explain the actual mechanisms.

Why it exists

Applications need consistent rules for parsing, comparing, and resolving identifiers instead of treating an address as arbitrary text.

A familiar example

A browser resolves a relative link such as ../photos against the address of the page you are reading.

Helpful background

You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.

What you’ll learn next

Begin with chapter one, or choose a topic.

  1. The five URI componentsA URI is parsed into scheme, authority, path, query, and fragment before its meaning is interpreted.
  2. Escape data, preserve delimitersPercent encoding represents an octet with a percent sign and two hexadecimal digits.
  3. Resolve a relative referenceResolution merges a reference with a base URI and removes dot segments in the defined order.
  4. Authority has its own structureUser information, host, and port are separate subcomponents; IP literals need brackets.
  5. Normalize only what is safeDifferent strings can identify the same resource, but generic normalization has limits.
  6. An identifier can misleadA visually persuasive URI can contain an authority different from the one a reader expects.
Start with chapter one →

This introduction explains RFC 3986 (2005). Read the original RFC ↗