It is confusing to a lot of people, but they aren't functionally interchangeable.<p>Basically you have Uniform Resource Locators (URLs), Uniform Resource Names (URNs), and Uniform Resource Identifiers (URIs). You also have International Resource Identifiers (IRIs), which are URIs with rules allowing for international character sets in things like host names.<p>Every URN and URL is a URI.
However, not every URI is a URN, or a URL.<p>A URN has a specific scheme (the front part of a URI before the :), but it does not contain instructions on how to access the identified resource. We humans might automatically map that to an access method in our head (e.g., digital object identifier URNs like doi:10.1000/182, which we who have used DOIs know maps to <a href="http://dx.doi.org/10.1000/182" rel="nofollow">http://dx.doi.org/10.1000/182</a>), but the instruction isn't in the URN.<p>A URL is not just an identifier but also an instruction for how to find and access the identified resource.<p>For example <a href="http://example.org/foo.html" rel="nofollow">http://example.org/foo.html</a> says to access the web resource /foo.html by using the HTTP protocol over TCP to connect to IP address which example.org resolves to, on port 80.<p>An example of URIs which are not URLs are the MIME content ids used to mark the boundaries within an email (cid scheme), e.g., cid:foo4%25foo1@bar.net.<p>You can get more information at:
<a href="https://tools.ietf.org/html/rfc2392" rel="nofollow">https://tools.ietf.org/html/rfc2392</a>
A lot of missteps in the early days of web technologies have made stable URLs impractical, unfortunately.<p>One problem is that someone decided to include file name extensions. Maybe this happened naturally because web servers made it so easy to expose entire directory structures to the web. And yet, this continues to be used for lots of other things. It is so ridiculous that a ".asp" or ".php" or ".cgi" causes <i>every link, everywhere</i> to depend on your arbitrary implementation details!<p>Another problem is that many software stacks are just not using brains when it comes to what would make a useful URL. Years ago I was very frustrated working with an enterprise software company that wanted to sell us a bug-tracking system and they didn’t have simple things like "server.net/123456" to access bug #123456; instead, the URL was something absolutely heinous that wouldn’t even fit on a single line (causing wrapping in E-mails and such).<p>Speaking of E-mail, I have received many E-mails over time that consisted of like TWELVE steps to instruct people on how to <i>reach</i> a file <i>on the web</i>. The entire <i>concept</i> of having a simple, descriptive and stable URL was completely lost on these people. It was always: 1. go to home page, 2. click here, ..., 11. click on annoying “content management system” with non-standard UI that generates unbookmarkable link, 12. access document. These utterly broken systems began to proliferate and it rapidly reached the point where most of the content that mattered (at least inside companies) was not <i>available</i> in any sane way so deep-linking to URLs became pointless.
" There is nothing about HTTP which makes your URIs unstable. It is your organization. "<p>I think this could be applied to more than just how companies manage URLs.<p>Also, I'm trying to find a post I recently read that talked about how calling URLs "URI"s is just confusing nowadays since almost everyone still only knows the term URL, and they're functionally interchangeable.
Another addition to their 'Hall of Flame' might be the British Monarchy. A couple of weeks ago, they broke <i>every</i> existing URI when they moved from www.royal.gov.uk to www.royal.uk. Every URL from the old domain gets redirected to the root of the new site.<p><a href="https://www.google.co.uk/search?q=site%3Aroyal.gov.uk" rel="nofollow">https://www.google.co.uk/search?q=site%3Aroyal.gov.uk</a>
Interesting, the link as posted here violates the guidelines. Perhaps you meant to link to<p><a href="https://www.w3.org/Provider/Style/URI" rel="nofollow">https://www.w3.org/Provider/Style/URI</a><p>;)
This is a make-work trap for conscientious people.<p>If it's more efficient for your business/project to change your URIs when going through a website design, go ahead (with the knowledge that you'll lose some traffic, etc.)<p>Seriously, there's no reason to feel guilty over this. It's not your fault, it's the fault of a system that built two UIs into every website (the website's HTML and the URL bar -- the second of which is supposed to be useful for browsing and navigation just like the first).<p>If W3C actually cared about links continuing to work, they would fix it at the technical level by promoting content-addressable links instead of trying to fix it at the social level (which will never work anyway, the diligent people that care about these things will always be just a drop in the bucket).
I remember Jeremy Keith talking about this at dConstruct conference; he put a bet on Long Bets that the URI of the bet wouldn't change [0]<p>[0] - <a href="http://longbets.org/601/" rel="nofollow">http://longbets.org/601/</a>
On a related note, URIs shouldn't end in extensions (use content negotiation!), content should be readable without executing code (no JavaScript necessary), content should be available in multiple languages (use content negotiation!), and RESTful interface should offer a simple forms-based interface for testing, &c.
I was recently digging through my old blog's archives, and it was appalling how many URLs from the early 2000s have completely disappeared, despite the fact that the sites which served them remain — and gratifying when I was able to reload some fringe resource from 1998 or 2003.<p>The Web is about webs of durable readable content, not about ephemeral walled-garden apps.
One downside of this: I now feel like I can't create a proper place to keep my writing or other ideas until I carefully think of a URL scheme that I can maintain for eternity.
There's RFC 4151 to keep in mind, TagURI, a scheme for URIs that is independent of URL (but can use it too). One reason to use it would be to mark a page as being the same resource even though the domain or URL had changed.<p><a href="http://www.taguri.org/" rel="nofollow">http://www.taguri.org/</a><p><a href="https://en.wikipedia.org/wiki/Tag_URI_scheme" rel="nofollow">https://en.wikipedia.org/wiki/Tag_URI_scheme</a><p>I wrote a library for it in Ruby which is how I know about it.
I wonder if the footnote was also written in 1998:<p><i>Historical note: At the end of the 20th century when this was written, "cool" was an epithet of approval particularly among young, indicating trendiness, quality, or appropriateness.</i>
Cool URLs still work in OmniWeb on a NeXT with a decades old bookmarks file: <a href="https://www.flickr.com/photos/osr/17082625625/lightbox" rel="nofollow">https://www.flickr.com/photos/osr/17082625625/lightbox</a><p>The Mondo 2000 interview bookmarks, not so much.
The example URL they list from w3.org website (<a href="http://www.w3.org/1998/12/01/chairs" rel="nofollow">http://www.w3.org/1998/12/01/chairs</a>) is now broken. Great deal of irony.
What about case sensitivity? <a href="https://www.w3.org/provider/style/uri" rel="nofollow">https://www.w3.org/provider/style/uri</a> doesn't work.
Shouldn't there be some tradeoffs?<p>Say I sign up with service x with the name y. My URL is www.x.com/users/y. Years later I delete my account. Someone else signs up with the name y. Now www.x.com/users/y goes to someone else's resources. The old URL is broken.<p>The only way to prevent this is either give the user a url (that they will want to share) that is not meaningful or disallow anybody to sign up with a name that was ever in use and names are a resource that is very limited.<p>Neither seems ideal. I do agree on principal that URLS shouldn't change, though.<p>Hotmail actually has this problem, or at least they used to. They delete accounts that are inactive for a long time and someone else can sign up with that name. The new person can get email addressed to the previous owner.
<i>"Except insolvency, nothing prevents the domain name owner from keeping the name."</i><p>Ah, the halcyon days of the Internet's adolescence.<p>This was before fiascos like Mike Rowe, of Canada, having his mikerowsoft.com taken away.
At least one of their example URLs on the page still points (eventually) to the same content: <a href="http://www.nsf.gov/cgi-bin/getpub?nsf9814" rel="nofollow">http://www.nsf.gov/cgi-bin/getpub?nsf9814</a><p>Although they seem to have not learned anything, and are now using .jsp instead of .pl.
It's tough!<p>I have a custom PHP app that includes marketing pages.<p>I'd like to crowbar Wordpress into the server to serve the marketing pages instead, to make it easie to change text over time.<p>A .htaccess set of redirect rules may indeed work, but it's hard work to keep all URLs working.
I wonder if TBL would have written the same article 10 years later when search engines had gotten much better.<p>It's still an inconvenience when a URL moves, but before the likes of Google that used to be a huge inconvenience and it would often take tens of minutes to track down the new location, now it's on the order of tens of seconds at most.
Idea that something cool would stay cool forever sounds like oxymoron.<p>For example, Yahoo.com has remained the URI for Yahoo's homepage and will continue to until it's the 404 page. Yahoo.com is not cool.