Field guide/

Why is it called a 404 error? The number is blaming you

There was no room 404 at CERN. The real reason is in the first digit, and it is a little bit rude.

The characters 4 and 0 in a dark monospace font, with a dot in the centre of the zero, followed by a solid green block where a second 4 would be, on an off-white background.
The missing digit is doing the explaining.

Everyone thinks they know where 404 comes from: Room 404 at CERN, the particle physics laboratory near Geneva where the web was invented. The web's first servers lived in that room. Tim Berners-Lee, the man who invented the web, had his desk there and nobody could ever find him. So "404" came to mean "not found". The office part is true: the first server really was in his office. By the end of 1990 the first web server was running in Berners-Lee's office, under a hand-written label in red ink: "This machine is a server. DO NOT POWER IT DOWN!!"

A black cube-shaped NeXT computer on display in a museum case, with a hand-written label reading "This machine is a server. DO NOT POWER IT DOWN!!" and a printed proposal lying beside the keyboard.
The whole web, running on one machine nobody was allowed to switch off. Photograph by Coolcaesar, 2005. CC BY-SA 3.0, Wikimedia Commons.

It is a lovely story. It started circulating in the early 2000s. And it is not entirely correct.

In 2017, Wired asked Robert Cailliau about it. Cailliau worked with Berners-Lee on the hypertext system that turned into the web, so he was there. His answer was flat. "404 was never linked to any room or any physical place at CERN." And, in case that was too subtle: "That's a complete myth."

So where does it come from? This is how it is: 404 is not the name of a room, it is a sentence in a very small language. And the first digit is the verb.

Go back to 1992 and a draft of the HTTP standard called "HTTP: A protocol for networked information". The draft is one of the earliest descriptions of HTTP. The author signed it "TimBL", short for Tim Berners-Lee. Inside the draft sits a page called "Status codes in HTTP", also dated 1992. The W3C now keeps both in its archive of historic documents. The W3C was founded in October 1994, so the status codes page predates the standards body. The page lists the error codes. The page defines 404, "Not found", as "The server has not found anything matching the URI given". Fine, you knew that. URI is the specification's word for the address you asked for, and a URL is one kind of URI. A few lines away the same page explains the shape of the whole numbering scheme. "The 4xx codes are intended for cases in which the client seems to have erred, and the 5xx codes for the cases in which the server is aware that the server has erred."

Read that again, because it is an accusation. The first digit assigns blame. 4 means the mistake is at your end. 5 means the mistake is at theirs.

RFC 1945, the HTTP/1.0 specification published in May 1996 by Berners-Lee, Roy Fielding and Henrik Frystyk, makes it official. "The first digit of the Status-Code defines the class of response." One is informational. Two is success. Three is redirection. Four is client error. Five is server error. There are only five classes, and 404 comes from the one that blames the client.

The web's most familiar error message is not a shrug about a missing file. 404 is a polite, numerical finger pointing back at the person who asked. You typed the wrong thing. You followed a dead link. You, specifically.

What about the "04" part? Cailliau answered that too, and the answer is wonderfully boring. The numbers inside each range were picked, in his words, "according to the whims of the programmer". Client errors got the 400s. After that, somebody just started counting. There is no meaning in the 04. It could have been 407 and we would all be buying mugs with 407 on them.

He also explained why the message is a number rather than a sentence. "When you write code for a new system, you don't waste too much time writing long messages for the situations in which you detect an error." There was no room for eloquence, in the literal sense. "Modern geeks have no longer any idea what it was like to program with 64k of memory."

A screenshot of the whitehouse.gov website displaying a 404 error page on 20 January 2009.
A client error, technically. Screenshot of whitehouse.gov, 20 January 2009. Public domain, Wikimedia Commons.

Cailliau, for the record, finds the whole business tiresome. On why people care so much: "I don't even have a hunch about the 404 fascination. And frankly I don't give a damn." On the elaborate 404 pages people build: "The sort of creativity that goes into 404 response pages is fairly useless." He called the question "trivia". And he had a theory about why the room story won anyway, which is a "preference for the fairy tale over reality that is quite common in the human species".

He is right that the room is a fairy tale. He is wrong that the truth is duller. A missing scientist is just an anecdote. A number that has been quietly blaming you since 1992, in a grammar small enough to fit in 64k of memory, is a much better thing to find out.

The design from this story

Being quietly blamed since 1992 deserves some recognition, so there is a T-shirt called "Motif 404", and a cap for anyone who would rather wear it on their head.

Where this comes from

What is 404? The number is quietly blaming you | Binary & Thread