|
|
This article may require cleanup to meet Wikipedia's quality standards. No cleanup reason specified. Please add a |reason= parameter to this template. Please help improve this article if you can. The talk page may contain suggestions. (January 2012) |
A uniform resource name (URN) is a uniform resource identifier (URI) that uses the urn scheme and does not imply availability of the identified resource. Both URNs (names) and URLs (locators) are URIs, and a particular URI may be a name and a locator at the same time.
The functional requirements for uniform resource names are described in RFC 1737. The URNs are part of a larger Internet information architecture which is composed of URNs, uniform resource characteristics (URCs), and uniform resource locators (URLs). Each plays a specific role:
RFC 2141 ("URN syntax") says:
It is worth noting that, as stated in RFC 3986 ("uniform resource identifier generic syntax"),
Contents |
RFC 2141 (dated May 1997 and still classified as requests discussion and suggestions for improvements) describe in BNF the syntax of URNs as:
<URN> ::= "urn:" <NID> ":" <NSS>A URN is similar to a person's name, while a URL is like a street address. The URN defines something's identity, while the URL provides a location. Essentially, "what" vs. "where".
URNs are often compared to the ISBN system for uniquely identifying books (and in fact, it is possible to encode an ISBN as a URN). Having a book's unique identifier lets you discuss the book, such as whether you've read it, enjoyed it, etc. To actually read the book, however, you need its location (e.g., "on the bedside table"). So URNs and URLs are often complementary; for example, you might discuss an RFC using both concepts: "you can find urn:ietf:rfc:3187 (URN) over at http://tools.ietf.org/html/rfc3187.html (URL)."
The following are examples for "non-standard" URNs, i.e. identifiers that don't use officially registered (per RFC 3406) namespaces, which, though, match the syntax defined in RFC 2141 (URN Syntax).
A URN resolver is responsible for initiating and sequencing the queries that ultimately lead to a full resolution (translation) of a URN name or a "resolution request", e.g., a request for translation of a URN name into a URL.
An example server-side URN resolver: see RFC 2169.
|
|||||||||||