1. Overview

While learning HTTP response codes, we might be surprised to see the 418 “I’m a teapot” status for the first time.

In this tutorial, we’ll dive deeper into the origin story of this response code.


In short, the main reason for this response is that “there is a strong, dark, rich requirement for a protocol designed espressoly [sic] for the brewing of coffee.

The HTCPCP/1.0 protocol, or Hyper Text Coffee Pot Control Protocol, was born out of the increasing necessity for “computists” [sic] to make their coffee. 

2.1. Methods

One of the crucial methods in this protocol is BREW. This is quite a versatile method. We can reuse it in, for example, Hyper Text Brewery Control Protocol. POST is allowed and should behave similarly to BREW, but it was deprecated.

2.2. Types

As we’re dealing with coffee, we need some way to identify the type of coffee we want. HTCPCP provides various types to meet different personal preferences:

addition-type   = ( "*"
                  | milk-type
                  | syrup-type
                  | sweetener-type
                  | spice-type
                  | alcohol-type
                  ) *( ";" parameter )

However, it’s better to consult the documentation for specific types and how to use them.

2.3. Error Codes

The main goal of this protocol is to brew coffee, which isn’t possible to do in a teapot. Thus, we require an addition to the standard HTTP 4xx response statuses:

Teapot Brew request

The status code 418, “I’m a teapot,” aims to educate clients about the proper use of beverage pots. However, defining the difference between teapots and coffeepots is outside this article’s scope.

3. Technology Is Made by People

The birthday of the HTCPCP/1.0 protocol is April 1, 1998, which might give a clue about its origins.

RFC has a long history of April Fool’s Day publications, and this one was one of them. The protocol was described by Larry Masinter partially as a pure joke and partially as a satirical view on the inappropriate implementations of protocols.

This protocol doesn’t provide any real value. However, it shows that people make all the technology that we see around us. Sometimes, people do ridiculous things just for fun; for example, the 418 response status was implemented in many major languages.
Also, this means that everyone can outline their protocol. If it will be useful, or at least funny, someone can implement it.

4. Conclusion

In this article, we discuss some things people create that don’t make much sense, such as the 418 status code. Despite lacking real value, this shows the humanistic side of technology and that even the most complex and valuable things are made by real people.

Additionally, it shows us the flexibility of HTTP protocol and the importance of response statuses in its evolution.