RE: 404 error messages

One of my pet peeves is the lack of proper web server configuration
regarding status codes.  For example, getting a 404 status when the resource
has been knowingly moved or deleted rather than sending the appropriate
status (300, 301, 302, 303, 410, etc).  This is a fundamental usability
feature of nearly all web servers.  I can elaborate on this if anyone would
like.

Here is what I did with my 404 status message:
http://www.misma.org/errors/404.php3

Behind the scenes the 404 message, and other permanent errors, sends email
to the server admin with a complete description of the error and
automatically sets a Follow-Up flag (Mail header 'X-Message-Flag: Follow
up').  The follow-up flag enters the error into the system calendar's To-Do
list in supporting clients.  In the case of outdated URLs, I manually add
the appropriate redirect status to the server's access control file.  The
email message explains this, as well.

I have a fairly complete set of status messages:
http://www.misma.org/errors/

I modeled the status messages after Microsoft IIS and Roxen Challenger.

Jakob Neilsen's 404 article is excellent, by the way.  In fact, all of his
articles are excellent.  It does overlook the lack of sending proper status
messages for changed URLs, though.

Another thing noteworthy.  Some browsers (IE 5, notably) require a minimum
number of bytes of text before they will override the internal status
message.  Jakob Neilsen points this out in an additional note.  But, he
doesn't mention that IE has a 1024 byte requirement for status messages
other than 404.  (Mentioned in known issues with Apache 1.3.6)  I stick to a
1024 byte minimum so I don't have to remember which size goes with which
status.  A meaningful message is likely longer, anyway.

 ,David Norris

World Wide Web - http://www.geocities.com/CapeCanaveral/Lab/1652/
Home Computer - http://illusionary.tzo.cc/
Page via mail - 412039@pager.mirabilis.com
ICQ Universal Internet Number - 412039
E-Mail - kg9ae@geocities.com

Received on Thursday, 3 June 1999 14:06:10 UTC