I am a teapot

20 May 22 8 Comments

A reader contacted me to ask about a missing flight 404; they had heard on a trivia podcast that the original computer error message 404 was based on two flights 404 that disappeared.

I tracked down the podcast episode and while talking about the number 4 and then the 404 File Not Found error, they said something like this:

There’s a better theory where 404 comes from. There was a flight, flight 404 that went missing in 1989 and was never found. And then in 1990, there was another flight 404 which crashed. So there were two flight 404s that went wrong while the protocol was being defined.
Coincidence?
Probably.

Probably, yes. I had never heard this theory before but once I looked, there were a number of websites that claimed that there was a link. But was there any evidence?

It is true that there were two incidents that involved a flight number 404.

Alitalia flight 404 crashed into high ground on approach to Zürich in November of 1990. I covered it in great detail in Alitalia Flight 404: Catch the Glide!. I found just two references to this flight being related to the File not Found error and neither gives any justification other than that the crash happened in 1990. Having analysed the flight in detail, I am unable to find any reason why Tim Berners-Lee or anyone else at Cern would connect this to their newly developed protocol. The idea that the 404 error is based on “two flights, both number 404, which crashed” seems to have been a later invention, presumably by someone struck by the coincidence that two flights with the same flight number crashed within a year of each other.

The other accident fits the theory a little bit better. That was Pakistan International Airlines PK-404, which disappeared on the 25th of August in 1989. PIA flight 404 departed Gilgit Airport for a scheduled domestic flight to Islamabad International Airport. The aircraft was a Fokker F27-200 Friendship, a turboprop airliner, with the registration AP-BBF. The aircraft was 27 years old (1962-1989) and had 44,524 hours flying time and 41,524 cycles. There were five crew and 49 passengers on board on the morning flight which departed at 07:36 local time. The estimated flight time was one hour and ten minutes.

A few minutes after departure, the flight crew made a last transmission to ATC which did not show any signs of distress.

That was the last transmission received. No trace of the Fokker F27-200 has been found.

Conspiracy theories abounded, including that the aircraft had accidentally violated Indian airspace and was shot down with no warning. This theory was fueled by the fact that the Pakistan Air Force had Fokker F27s in the region at the time; the passenger flight could have been mistaken for a military aircraft. The situation isn’t helped by vague and conflicting information about the flight available online.

Aviation Safety Net describes the final call as stating they expected to be over point Bravo at 07:59 and they expected to arrive at Islamabad at 08:32. If so, that would be an extremely fast route for the 278 kilometre flight (174 miles). After the aircraft did not arrive, the flight was declared missing and presumed crashed. ASN offers three unlinked references, none of which can be checked online.

History of Pia, quoting the same sources as ASN, states that the F27 crashed in the Himalayan mountains.

The Bureau of Aircraft Accidents Archives, a private collection of aviation accidents worldwide, states that the crew failed to follow the correct route after departure and that the aircraft’s altitude was insufficient. However, the same site also claims that the wreckage was found in an isolated area a few hours later, which is demonstrably not true. The site does not include any sources as to where they got their information.

The Express Tribune published a piece by Shabbir Mir in August 2016: 27 years on, flight PK-404 still a mystery. This piece mentions the popular theory that the aircraft accidentally violated Indian airspace and was shot down with no warning, although the piece fails to mention that the Pakistan Air Force had Fokker F-27s in the region at the time. In fact, the article is extremely light on facts, but gives us the additional information that despite massive search operations in the Himalayas for several days, no trace of the wreckage was ever found.

The Tribune piece is backed up by a contemporary article, published on the 26th August 1989, which is still accessible in the UPI archives: Searchers find no sign of missing plane.

According to this article, the last words of the captain to the control tower were, “I am reaching Bunji.” I can’t think of a way of checking a chart for the area for the correct time period but looking at Skyvector’s IFR Chart there is a BUNGI waypoint southeast of Gilget which corresponds to the village of Bunji, so it is certainly feasible that he said either Bravo or Bungi.

Back to the point: PIA flight 404 disappeared in August 1989. The theory, if it can even be called such, is that “flight 404 not found” was all over the news just as the internet protocols were being defined, and thus 404 was used for a “not found” error in remembrance of the flight.

It’s a pretty story, but not true.

Tim Berners-Lee wrote his now-famous proposal for Information Management using hypertext in March of 1989 and this proposal was distributed in May 1990 with no changes, other than he changed the name from “mesh” to “World Wide Web”. Thus, it cannot have been influenced by the loss of the flight 404 and besides, the protocol codes were not defined yet. The media attention on the PIA flight 404 as missing or not found lasted a relatively short time. It would not have been even a subconscious reference over a year later. There’s just no reason why it would have influenced the numbering system.

That’s the other point: it isn’t just a single error that might have been named after a flight. It’s one example in a sequence.

Within the hypertext transfer protocol (HTTP), 404 stands out in our minds because it is the most common error that we, as users of the Web, see. It is a statement from the server that the file requested was not found, so it turns up for every typo, badly formed link or if the content has moved or been deleted (a dead link). As images and web pages are regularly moved or deleted, it is often the most commonly accessed page on a webserver after the home page. Over time, webmasters have taken the opportunity to do add context to the 404 File Not Found response, so that those unfortunate users who land there are not faced with a dead end. These can ranging from a link to the home page to help the user to get back on track to sales pitches to jokes.

The fact that we often see the HTTP 404 response number may be leading people to believe that it is a stand-alone reference. However, the number was not randomly chosen. It is part of a series. The first digit defines the situation. I had a long explanation here but while I was writing this, someone sent me the following list which, despite the salty language or maybe because of it, does a much better job of showing what the first digit means in this context:

– 1xx: hold on
– 2xx: here you go
– 3xx: go away
– 4xx: you fucked up
– 5xx: I fucked up

In the case of 404, the first digit, 4, indicates a client error. The last two digits, 04, then clarify the specific error encountered; in this case that the server cannot fulfil the request because the file requested is not present on the server. Thus, Error 404 is a message from the server to the client (your web browser) to explain that the webpage you are trying to access does not exist.

Another error, 403, follows the same system: the 4 refers to a client error and the 03 means “forbidden”. The server responds to say it has understood the request but the file requested is not being served, for example you are trying to access restricted information or pages that were later deemed to be illegal.

The point here is that although 404 stands out to us as a single error, it is only one of many and there’s no logical reason to connect it to the missing flight.

The thing is, it isn’t even all that exciting an error. A much more interesting error in the 400 sequence is 418: I am a teapot.

This error code is part of RFC (Request For Comments) 2324, which was released on April Fools’ Day in 1998. The RFC describes a communication protocol called the Hyper Text Coffee Pot Control Protocol (HTCPCP). HTCPCP was put forward as an extension of HTTP for the brewing of coffee. The additions to HTTP for this protocol included:

  • BREW : The HTCPCP server should brew coffee. The RFC proposes to extend this with HTTP request header field Accept-Additions which would allow for optional additions to the coffee such as milk, syrup or alcohol.
  • GET : Retrieve the coffee from the server
  • PROPFIND : If a cup of coffee is data, metadata about the brewed resource is discovered using the PROPFIND method [WEBDAV].
  • WHEN : (as in “say when”) causes the HTCPCP server to stop pouring milk into the coffee, if applicable.

There are no options for decaffeinated coffee because, as the RFC puts it, “What’s the point?”

In addition, the extended protocol lists two useful error responses:

  • 406 Not Acceptable : The HTCPCP server is unable to comply with the request, for example, although the protocol allows for the additions, in practice, most automated coffee pots cannot currently provide them.
  • 418 I'm a teapot : Any attempt to brew coffee with a teapot should result in the error code “418 I’m a teapot”. The resulting entity body MAY be short and stout.

The point of this tongue-and-cheek proposal was to highlight the issue of HTTP being extended to deal with issues that could be better dealt with elsewhere; however, the RFC soon became wildly popular, with an RFC in 2014 extending the protocol to fully handle teapots.

In a probably fruitless attempt to wrestle the subject back to something vaguely related to Fear of Landing, the error code came up earlier this year on a website that happens to have a lot of information about Russian fighter jets.

At the beginning of war, the Russian military site https://mil.ru was (and probably still is) the victim of numerous DDoS attacks (distributed denial of service attacks) from sites around the world. The Russian IT teams responded quickly by rejecting all requests outside of a specific area (geofencing), basically Russia and Belarus, in order to keep the site accessible to those who needed it. This meant that users within the geofence were able to access the site as normal and everyone outside of the geofence received an error page, which effectively disabled the foreign attacks.

Now, this situation is a very good example of where 403 Forbidden would be used, in order to make it clear that the pages or files exist, but they are not accessible to the client making the request.

However, someone dealing with the defence against the DDoS attacks clearly has a sense of humour.

For some time, everyone outside of the geofenced area who attempted to access the Russian military website received the 418: I am a teapot error message.

Why doesn’t someone give me a trivia podcast? I could have so much fun with it!

Category: Demystifying,

8 Comments

  • Dang. I think that’s the best explanation of HTTP error codes I’ve ever seen, especially by a non-computer person!

  • Loved this! I’ve been reading this site for years – lots of interesting stuff Sylvia clearly knows about, and great comments from knowledgeable people. This was a great departure… :) I’ll spend forever for someone to ask what 404 means, so I can explain it to them.

    • I’m glad I’m not the only one who walks around thinking “I hope someone asks me about [topic I am interested in and knowledgeable about] so I can infodump at them!”

      Asking about HTTP status codes also results in an excuse to link http.cat[1], which explains nothing but does give you a cute cat photo to associate with each response code.

      [1] https://http.cat/

  • I sort of thought it had to be something vaguely planned, but this inspired me to look up the codes in Wikipedia; I’m disappointed that unlike 451 (cited above), there’s a 409 that doesn’t make the obvious cultural reference https://en.wikipedia.org/wiki/409_(song). (Yes, I know Berners-Lee is English; there was a period (although somewhat after this song came out) when the Beach Boys were better-selling in England than the Beatles.) Instead, it indicates that the resource is in flux (e.g., there are competing edits).

  • My goodness, I am now convinced, more than ever, that this article supports my theory that a computer should be called a “confuser”!

Leave a Reply to Andyv

Your email address will not be published.

*
*
*

This site uses Akismet to reduce spam. Learn how your comment data is processed.