404 Not Found

by Simon St. Laurent

Related link: http://simonstl.com/asdf/

I'd like to pause for a moment in tribute to a key innovation which made the Web possible, the 404 Not Found error.

Prior to the Web, there had been all kinds of adventures in hypertext, from Ted Nelson's transclusions to path-based approaches to scripting to HyTime to my own trivial keyword-based work in HyperCard. While hypertext was really cool and really great stuff, it wasn't going anywhere, in large part because the systems for building it were pretty onerous and frequently enormous. The desire (and sometimes obsession) to control the links made for some really thorny problems that grew rapidly with the number of documents and links.

The Web dropped all that pretense. Links were one-way, they weren't centralized, and best of all, they could break. Make a bad link? The worst thing you'd get was an error message. Sure, users get frustrated by these things, but over time they've largely learned to adapt (or use archives if "it used to be there").

By doing less, the Web did enormously more.

Anyone else appreciate the 404?


2003-07-16 20:14:53
*Now, that is a unique but interesting spin on things
2003-07-17 06:42:41
*Now, that is a unique but interesting spin on things
It may seem odd to praise an error message. Perhaps you could rephrase what Simon is saying as "isn't it nice that this exception is handled?" If he had said "isn't it nice that the web lets any page link to any other page?" that would be a pretty boring statement to make in 2003, but, the specification of a particular behavior for bad links is what made it practical to tell everyone that they can link to anything, and it's what let the web get implemented on such a vastly wider scale than any hypertext systems that preceded it.
2003-07-17 14:30:07
Best 404 message all year.
BTW, via Rob Flickenger, I offer you the funniest 404 message all year.
2003-07-19 02:07:30
Best 404 message all year.
Too bad this is not a real 404 page. Here are the headers:

GET /error/index.php HTTP/1.1
Host: www.vastert.nl
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4b) Gecko/20030516 Mozilla Firebird/0.6
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate,compress;q=0.9
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.oreillynet.com/pub/wlg/3526

HTTP/1.x 200 OK
Date: Sat, 19 Jul 2003 09:04:54 GMT
Server: Apache/1.3.27 (Unix) PHP/4.2.3
X-Powered-By: PHP/4.2.3
Keep-Alive: timeout=10, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

2003-08-05 14:34:09
*Now, that is a unique but interesting spin on things
This is blatantly not true.

I was absolutely capable of making "bad links" in Apple HyperCard.

Instead of an error "page" or error "stack", I recieved, back in the 1980s, a popup window stating the error with a button to click saying "OK".

The main drawbacks were that HyperCard operated only across apple file-shared networks (this was before TCP/IP came to the mac) and that it was in black&white only. However, there was excellent sound and interactivity support, and the entire design was extremely object based.

The biggest drawback of course, was that it only worked on an overpriced, underpowered macintosh...

2003-08-06 18:25:17
Need the network
I was also a HyperCard geek, and very fond of that project - and yes, it did let you give errors to the user. There are two issues that differentiate that experience from the Web and 404.

1) HyperCard, for all its virtues, was never distributed. I do wish that Apple had taken an interest in network-enabling stacks at a deep level, but it never happened. This meant that stacks, while they could be linked, were generally the work of a relatively coherent project, not an assembly of parts from all over.

2) The Web world took 404 to heart pretty early. While there was still a general trend toward making sure links would work within your own site, there wasn't a whole lot of worry about the risks of pointing to other people's sites. Nothing too terrible would happen. (Of course, that's changed a bit with domain squatters who hurl advertisers at visitors to now-defunct sites, but that's relatively recent.)

As much I like HyperCard, it just wasn't an environment where 404 could matter. You need the network for the benefits of that error to become real.