I was snooping around the internet back in 1998 looking at all the cool stuff and learning about the technology when I read a memo from the IETF. They were introducing a new online protocol: Hyper Text Coffee Pot Control Protocol. Being that it was dated April 1st, I guessed it was a prank.
Whoop dee do…
It was a really good prank. At the time we didn’t have the volume of weirdness that we do on the internet today. It was rather novel and somewhat before the rise of geek culture, back when Starbucks had less than 2000 locations (~17,000 today). It also worked.
Well, servers can return any error they want and your browser will display it. Web servers tend to stick to the same list of codes and these have been grandfathered in. You can use it with coffee pots:
- BREW or POST – Tells the HTCPCP server to brew some coffee. It includes an Accept-Additions HTTP Request header field to request Cream, Whole-milk, Sugar, etc.
- GET – Retrieves coffee from the HTCPCP server.
- PROPFIND – Aquires metadata about the coffee: is it ready, how hot is it, etc.
- WHEN – Causes the HTCPCP server to stop pouring milk or cream into the coffee (if requested with the brew function).
Of course these don’t always work. If you have a Teapot server, for example, you cannot BREW coffee in it.
Nope: 418 I’m a Teapot. This has been the best relic of this prank. People over the years have created teapot servers just so they can return this entirely valid error.
There was a post on SEOMoz about error codes and how they apply to SEO. The author missed the 418 error, so I created the image to the right.