Prompted by a question from my wife, I finally went off and figured out the difference between a URI and a URL and a URN. I gleaned my analysis from the W3C’s article, URIs, URLs, and URNs: Clarifications and Recommendations 1.0. This might be the key paragraph:
Over time, the importance of this additional level of hierarchy seemed to lessen; the view became that an individual scheme does 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; 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 a “URI scheme”).
Without further ado, here is my ultra-short clarification:
- A Universal Resource Identifier (URI) is the most general thing. It unambiguously identifies something. A URI looks like
scheme:more_stuff
where the scheme determines how more_stuff is interpreted. - A Universal Resource Locator (URL) is a type of URI that tells you how to find something on the internet. It looks like
scheme:more_stuff
where scheme is one of “http”, “ftp” or “mailto”. Obviously, the scheme is the name of a protocol so it not-so-coincidentally both defines what more_stuff should look like and how to actually get to more_stuff. Two examples of URLs arehttp://www.cheerfulcurmudgeon.com/
andmailto:[email protected]
- A Universal Resource Number (URN) is a type of URI that unambiguously identifies something with a number. A URN looks like this
urn:namespace:number
, where namespace tells you what kind of number follows the second colon. A sample URN might be,urn:isbn:1-23-456789-0
Bernie Zimmerman’s clear writing also helped me understand this stuff. Thanks, Bernie!
Bernie Zimmermann says
You’re most welcome!