A couple of days ago, I attended a briefing at Microsoft in Reading (, England for the non-British amongst you) that included a presentation on .NET support of REST by Mike Taulty. Mike is very good incidentally, even if he does deliver hundreds of little nuggets of useful knowledge at supersonic speeds, leaving your brain slightly jellified after an hour’s presentation. At this briefing, he commented upon not knowing the difference between URL and URI and apologised if he used the terms wrongly. This set me thinking: should I actually care what the terms mean and try and use them correctly myself?
So today I got off my backside (metaphorically speaking) and read up on the matter. My conclusions are that I wish I hadn’t bothered. The subject is a minefield of utter techno-babble.
Having consulted a series of documents:
- Uniform Resource Identifiers (URI): Generic Syntax
- URN Syntax
- Uniform Resource Identifier (URI): Generic Syntax
- URIs, URLs, and URNs: Clarifications and Recommendations 1.0
- Uniform Resource Identifier (Wikipedia)
I have constructed the following (hopefully correct) summary:
- The original intention of identifying resources (URIs) on the internet was that they have a name (the URN) and an address (the URL). An analogy is a library, whereby books have both a “name” (the ISBN number) and a “location” (normally, at least here in Britain, expressed using the Dewey decimal system). Thus one can trace the book to a shelf with its Dewey decimal “URL” and there find its ISDN “URN”. Alternatively, if the book moves (is borrowed), one can trace its new location by looking up its URN in the library’s lending records. Thus URLs (and URNs) are subsets of URIs.
- This scheme was largely ignored by the great unwashed masses. URNs fell by the wayside and URL and URI largely became synonymous in the minds of many who knew of the terms. Most actually just use the term “web address” and URL at a push.
- The W3C responded to all this by trying to clarify things. They did this by “depreciating” URLs and insisting everyone call them URIs. I can only assume this is because the W3C’s membership consists of brainy boffins without even an ounce of good sense between them.
So in conclusion, I ought to use the term URI, and never use the term URL again. But I don’t think I’ll bother. I like the term URL and so I’m sticking with it and those that prefer URI are welcome to stick with that.