| URI, Uniform Resource Identifier |
|
|
Description | Glossary | RFCs | Publications | Obsolete RFCs |
| Working groups: | uri, Uniform Resource Identifiers. |
| Links: | IANA: URI schemes. |
There is some confusion in the web community over the partitioning of URI space, specifically, the relationship among the concepts of URL, URN, and URI. The confusion owes to the incompatibility between two different views of URI partitioning, which we call the "classical" and "contemporary" views.
During the early years of discussion of web identifiers (early to mid 90s), people assumed that an identifier type would be cast into one of two (or possibly more) classes. An identifier might specify the location of a resource (a URL) or its name (a URN), independent of location. Thus a URI was either a URL or a URN. There was discussion about generalizing this by the addition of a discrete number of additional classes; for example, a URI might point to metadata rather than the resource itself, in which case the URI would be a URC (citation). URI space was thus viewed as partitioned into subspaces: URL, URN, and additional subspaces to be defined. The only such additional space ever proposed was Uniform Resource Characteristics (URC) and there never was any buy-in; so without loss of generality, it's reasonable to say that URI space was thought to be partitioned into two classes: URL and URN. Thus, for example, "http:" was a URL scheme, and "isbn:" would (someday) be a URN scheme. Any new scheme would be cast into one of these two classes.
Over time, the importance of this additional level of hierarchy seemed to lessen; the view became that an individual scheme did not need to be cast into one of a discrete set of URI types, such as "URL", "URN", "URC", etc. Web-identifier schemes are, in general, URI schemes, as a given URI scheme may define subspaces. Thus "http:" is a URI scheme. "urn:" is also a URI scheme; it defines subspaces, called "namespaces". For example, the set of URNs, of the form "urn:isbn:n-nn-nnnnnn-n", is a URN namespace. ("isbn" is an URN namespace identifier. It is not a "URN scheme", nor is it a "URI scheme.") Further, according to the contemporary view, the term "URL" does not refer to a formal partition of URI space; rather, URL is a useful but informal concept. A URL is a type of URI that identifies a resource via a representation of its primary access mechanism (e.g., its network "location"), rather than by some other attributes it may have. Thus, as we noted, "http:" is a URI scheme. An http URI is a URL. The phrase "URL scheme" is now used infrequently, usually to refer to some subclass of URI schemes which exclude URNs.
The body of documents (RFCs, etc) covering URI architecture, syntax, registration, etc., spans both the classical and contemporary periods. People who are well-versed in URI matters tend to use "URL" and "URI" in ways that seem to be interchangeable. Among these experts, this isn't a problem, but among the Internet community at large, it is a problem. People are not convinced that URI and URL mean the same thing, in documents where they (apparently) do. When one RFC talks about URI schemes, another talks about URL schemes, and yet another talks of URN schemes, it is natural to wonder how they differ and how they relate to one another.
| Permanent URI scheme | Description | References |
|---|---|---|
| aaa: | DIAMETER. | RFC 3588 |
| aaas: | DIAMETER over secure transport. | RFC 3588 |
| acap: | ACAP, Application Configuration Access Protocol. | RFC 2244 |
| cap: | CAP, Calendar Access Protocol. | RFC 4324 |
| cid: | Content identifier. | RFC 2392 |
| crid: | TV-Anytime content reference identifier. | RFC 4078 |
| data: | data. | RFC 2397 |
| dav: | WebDAV, Web Distributed Authoring and Versioning. | RFC 4918 |
| dict: | DICT, Dictionary Server Protocol. | RFC 2229 |
| dns: | DNS, Domain Name System. | RFC 4501 |
| fax: | fax. | RFC 2806 |
| file: | filenames. | RFC 1738 |
| ftp: | FTP, File Transfer Protocol. | RFC 1738 |
| go: | CNRP, Common Name Resolution Protocol. | RFC 3368 |
| gopher: | Gopher. | RFC 4266 |
| h323: | H.323. | RFC 3508 |
| http: | HTTP, HyperText Transfer Protocol. | RFC 2616 |
| https: | HTTP over TLS. | RFC 2818 |
| iax: | IAX, Inter-Asterisk eXchange version 2. | RFC 5456 |
| icap: | ICAP, Internet Content Adaptation Protocol. | RFC 3507 |
| im: | instant messaging. | RFC 3860 |
| imap: | IMAP, Interactive Mail Access Protocol. | RFC 5092 |
| info: | information assets with identifiers in public namespaces. | RFC 4452 |
| ipp: | IPP, Internet Printing Protocol. | RFC 3510 |
| iris: | IRIS, Internet Registry Information Service. | RFC 3981 |
| iris.beep: | IRIS over BEEP. | RFC 3983 |
| iris.lwz | IRIS lightweight using compression. | RFC 4993 |
| iris.xpc: | RFC 4992 | |
| iris.xpcs: | RFC 4992 | |
| ldap: | LDAP, Lightweight Directory Access Protocol. | RFC 4516 |
| mailto: | RFC 6068 | |
| mid: | Message identifier. | RFC 2392 |
| modem: | modem. | RFC 2806 |
| msrp: | MSRP, Message Session Relay Protocol. | RFC 4975 |
| msrps: | MSRP over TLS. | RFC 4975 |
| mtqp: | MTQP, Message Tracking Query Protocol. | RFC 3887 |
| mupdate: | MUPDATE, Malbox Update. | RFC 3656 |
| news: | USENET news. | RFC 1738 |
| nfs: | NFS, Network File System. | RFC 2224 |
| nntp: | NNTP, Network News Transfer Protocol. | RFC 1738 |
| opaquelocktoken: | RFC 4918 | |
| pop: | POP, Post Office Protocol. | RFC 2384 |
| pres: | RFC 3859 | |
| rstp: | RTSP, Real Time Streaming Protocol. | RFC 2326 |
| service: | SLP, Service Location Protocol. | RFC 2609 |
| shttp: | RFC 2660 | |
| sieve: | RFC 5804 | |
| sip: | SIP, Session Initiation Protocol. | RFC 3261 |
| sips: | SIP over TLS. | RFC 3261 |
| snmp: | SNMP, Simple Network Management Protocol. | RFC 4088 |
| soap.beep: | SOAP, Simple Object Access Protocol. | RFC 4227 |
| soap.beeps: | RFC 4227 | |
| tag: | RFC 4151 | |
| tel: | RFC 3966 | |
| telnet: | Telnet. | RFC 1738 |
| tftp: | TFTP, Trivial File Transfer Protocol. | RFC 3617 |
| thismessage: | RFC 2557 | |
| tip: | RFC 2371 | |
| tn3270: | RFC 6270 | |
| tv: | RFC 2838 | |
| urn: | RFC 2141 | |
| vemmi: | VEMMI, VErsatile MultiMedia Interface. | RFC 2122 |
| xcon: | RFC 6501 | |
| xcon-userid: | RFC 6501 | |
| xmlrpc.beep: | RFC 3529 | |
| xmlrpc.beeps: | RFC 3529 | |
| xmpp: | RFC 5122 | |
| z39.50r: | Z39.50 | RFC 2056 |
| z39.50s: | Z39.50 | RFC 2056 |
| Provisional URI scheme | Description | References |
|---|---|---|
| afs: | Andrew file system. | RFC 1738 |
| dtn: | RFC 3987, RFC 5050 | |
| dvb: | ||
| icon: | ||
| ipn: | RFC 6260 | |
| jms: | Java Message Service. | RFC 6167 |
| oid: | ||
| pack: | ||
| rsync: | rsync. | RFC 5781 |
| view-source: | ||
| ws: | ||
| wss: |
| Historical URI scheme | Description | References |
|---|---|---|
| mailserver: | Access to data available from mail servers. | RFC 1738, RFC 6196 |
| prospero: | Prospero. | RFC 1738, RFC 4157 |
| snews: | RFC 5538 | |
| videotex: | RFC 2112, RFC 3986 | |
| wais: | Wide Area Information Servers. | RFC 1738 |
RFCs:
[RFC 1630] Universal Resource Identifiers in WWW A Unifying Syntax for the Expression of Names and Addresses of Objects on the Network as used in the World-Wide Web.
[RFC 2056] Uniform Resource Locators for Z39.50.
[RFC 2079] Definition of an X.500 Attribute Type and an Object Class to Hold Uniform Resource Identifiers (URIs).
[RFC 2122] VEMMI URL Specification.
[RFC 2224] NFS URL Scheme.
[RFC 2244] ACAP -- Application Configuration Access Protocol.
[RFC 2229] A Dictionary Server Protocol.
[RFC 2326] Real Time Streaming Protocol (RTSP).
[RFC 2371] Transaction Internet Protocol Version 3.0.
[RFC 2384] POP URL Scheme.
[RFC 2397] The "data" URL scheme.
[RFC 2838] Uniform Resource Identifiers for Television Broadcasts.
[RFC 2392] Content-ID and Message-ID Uniform Resource Locators.
[RFC 2557] MIME Encapsulation of Aggregate Documents, such as HTML (MHTML).
[RFC 2609] Service Templates and Service: Schemes.
[RFC 2818] HTTP Over TLS.
[RFC 3261] SIP: Session Initiation Protocol.
[RFC 3305] Report from the Joint W3C/IETF URI Planning Interest Group: Uniform Resource Identifiers (URIs), URLs, and Uniform Resource Names (URNs): Clarifications and Recommendations.
[RFC 3368] The 'go' URI Scheme for the Common Name Resolution Protocol.
[RFC 3507] Internet Content Adaptation Protocol (ICAP).
[RFC 3508] H.323 Uniform Resource Locator (URL) Scheme Registration.
[RFC 3510] Internet Printing Protocol/1.1: IPP URL Scheme.
[RFC 3588] Diameter Base Protocol.
[RFC 3617] Uniform Resource Identifier (URI) Scheme and Applicability Statement for the Trivial File Transfer Protocol (TFTP).
[RFC 3656] The Mailbox Update (MUPDATE) Distributed Mailbox Database Protocol.
[RFC 3859] Common Profile for Presence (CPP).
[RFC 3860] Common Profile for Instant Messaging (CPIM).
[RFC 3880] Call Processing Language (CPL): A Language for User Control of Internet Telephony Services.
[RFC 3887] Message Tracking Query Protocol.
[RFC 3953] Telephone Number Mapping (ENUM) Service Registration for Presence Services.
[RFC 3966] The tel URI for Telephone Numbers.
[RFC 3981] IRIS: The Internet Registry Information Service (IRIS) Core Protocol.
[RFC 3983] Using the Internet Registry Information Service (IRIS) over the Blocks Extensible Exchange Protocol (BEEP).
[RFC 3986] Uniform Resource Identifier (URI): Generic Syntax.
[RFC 4078] The TV-Anytime Content Reference Identifier (CRID).
[RFC 4088] Uniform Resource Identifier (URI) Scheme for the Simple Network Management Protocol (SNMP).
[RFC 4151] The 'tag' URI Scheme.
[RFC 4156] The wais URI Scheme.
[RFC 4157] The prospero URI Scheme.
[RFC 4227] Using the Simple Object Access Protocol (SOAP) in Blocks Extensible Exchange Protocol (BEEP).
[RFC 4248] The telnet URI Scheme.
[RFC 4266] The gopher URI Scheme.
[RFC 4324] Calendar Access Protocol (CAP).
[RFC 4395] Guidelines and Registration Procedures for New URI Schemes.
[RFC 4452] The "info" URI Scheme for Information Assets with Identifiers in Public Namespaces.
[RFC 4501] Domain Name System Uniform Resource Identifiers.
[RFC 4516] Lightweight Directory Access Protocol (LDAP): Uniform Resource Locator.
[RFC 5341] The Internet Assigned Number Authority (IANA) tel Uniform Resource Identifier (URI) Parameter Registry.
[RFC 5781] The rsync URI Scheme.
[RFC 6068] The 'mailto' URI Scheme.
[RFC 6196] Moving mailserver: URI Scheme to Historic.
[RFC 1738] Uniform Resource Locators (URL).
[RFC 2168] Resolution of Uniform Resource Identifiers using the Domain Name System.
[RFC 2255] The LDAP URL Format.
[RFC 2368] The mailto URL scheme.
[RFC 2806] URLs for Telephone Calls.
|
|
Description | Glossary | RFCs | Publications | Obsolete RFCs |