URI, Uniform Resource Identifier

Description Glossary RFCs Publications Obsolete RFCs

Description:

Working groups: uri, Uniform Resource Identifiers.
Links: IANA: URI schemes.

RFC 3305:

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 schemeDescriptionReferences
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 schemeDescriptionReferences
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 schemeDescriptionReferences
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

Glossary:


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.


Publications:


Obsolete RFCs:

[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