RFC 8141 / START HERE
URNs, before the details
URN means Uniform Resource Name. It is a kind of Uniform Resource Identifier (URI) that uses the urn scheme and a managed namespace.
A URN names a resource with the intent that its identity can persist independently of its current location. A resolver may map a name to a current address, descriptive metadata, or a representation of the resource.
Why it exists
RFC 8141 defines the name syntax, comparison rules, optional resolution/query/fragment components, and namespace registration. It replaces RFCs 2141 and 3406; it does not define a universal lookup service or make every URN downloadable.
A familiar example
A library record can keep the same assigned name while its current web address changes. Finding and retrieving a copy still depends on maintained services and access rules. Names are not recycled for different resources, and a correct-looking name is not proof of trustworthy content.
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.
- Keep a name when locations changeA Uniform Resource Name, or URN, identifies a resource with an intent of persistence. A locator tells a client where a resource can currently be accessed.→
- Read the assigned name and optional partsThe assigned name is urn:NID:NSS. The namespace identifier selects the naming system, while the namespace-specific string supplies the name inside it.→
- Compare names without decoding themGeneric URN-equivalence compares assigned names after specific case normalization. It deliberately does not decode percent-encoded characters.→
- Separate resolution parameters from queriesAn r-component is intended for a resolution service. RFC 8141 reserves its syntax, while leaving exact service semantics to other standardization.→
- Apply a query and a client fragmentA q-component can become the query of a returned locator. A fragment is interpreted for the retrieved representation, normally at the client.→
- Keep assignment unique over timeNamespace management makes names persistent: an assigned name is not recycled for a different resource, even after it becomes obsolete.→
- Register a namespace before assigning real namesURN namespaces are managed too. Registration records the naming contract, rather than making any urn-looking string a valid assigned name.→
- Encode carefully and preserve trust boundariesA URN’s transport form is ASCII. Namespace-aware encoding, careful comparison and trustworthy resolution matter more than a familiar-looking label.→
This introduction explains RFC 8141 (2017). Read the original RFC ↗