Long URLs

Thursday 3 October 2002

Brent's Law of CMS URLs is simple: the more expensive the content management system, the longer and uglier the URLs they produce.

This resonated with me, both because I have experienced these impossible-to-use URLs as a web surfer, but also because I helped make some of them, by being one of the developers of the Domino Web Server.

Domino produces URLs that look like this (I manually broke it into two parts!):
http://www-10.lotus.com/ldd/sandbox.nsf/85d5b6903071400e8525676d0079b3ae/
6bcca234153471348525689a0070bc43?OpenDocument

We designed the URL syntax of Domino to be almost an API into the data in the Notes database, which is why the URLs ended up long and inscrutable, and I'm sure is the reason why all these other CMS's do it as well.

In Domino's case, there are shorter URLs that will also work. For example, the first long ugly number is the UNID of the view to use to open the document. The vast majority of Domino databases don't care what view is used to open the document, so it can be replaced with a 0. The command on the end (after the ?) defaults to ?Open, so that can be omitted as well:http://www-10.lotus.com/ldd/sandbox.nsf/0/6bcca234153471348525689a0070bc43

Over time, lots of featurettes have been added to Domino to make the URLs nicer. For example, you can have Domino generate URLs with ! instead of ? so that spiders will follow them.

Did we make all the best choices? No, of course not. But we were exploring new ground, like the URL-as-API concept. We weren't the only ones doing it, but there wasn't much precedent. At the time, Domino URLs were some of the ugliest around. Now they are dwarfed by some of the monstrosities generated by other systems. In our defense, at least we didn't use wacky punctuation (like pipes)!

BTW: the original Domino discussion forum is still on-line, a quick look through it showed that it only took about two weeks from Domino's first public showing to start getting requests to simplify the URL syntax.

Comments

Add a comment:

name
email
Ignore this:
not displayed and no spam.
Leave this empty:
www
not searched.
 
Name and either email or www are required.
Don't put anything here:
Leave this empty:
URLs auto-link and some tags are allowed: <a><b><i><p><br><pre>.