The Hyper Text Coffee Pot Control Protocol (HTCPCP) is a facetious
communication protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchroniz ...
for controlling, monitoring, and diagnosing
coffee pot
A coffeemaker, coffee maker or coffee machine is a cooking appliance used to brew coffee. While there are many different types of coffeemakers the two most common brewing principles use gravity or pressure to move hot water through coffee g ...
s. It is specified in , published on 1 April 1998 as an
April Fools' Day RFC
April is the fourth month of the year in the Gregorian and Julian calendars. It is the first of four months to have a length of 30 days, and the second of five months to have a length of less than 31 days.
April is commonly associated with ...
, as part of an
April Fools prank. An extension, HTCPCP-TEA, was published as RFC 7168 on 1 April 2014
to support brewing teas, which is also an April Fools' Day RFC.
Protocol
RFC 2324 was written by
Larry Masinter, who describes it as a satire, saying "This has a serious purpose – it identifies many of the ways in which
HTTP
The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, w ...
has been extended inappropriately." The wording of the protocol made it clear that it was not entirely serious; for example, it notes that "there is a strong, dark, rich requirement for a protocol designed
espressoly for the brewing of coffee".
Despite the joking nature of its origins, or perhaps because of it, the protocol has remained as a minor presence online. The editor
Emacs includes a fully functional client side implementation of it, and a number of bug reports exist complaining about
Mozilla's lack of support for the protocol. Ten years after the publication of HTCPCP, the ''Web-Controlled Coffee Consortium'' (''WC3'') published a first draft of "HTCPCP Vocabulary in
RDF" in parody of the
World Wide Web Consortium's (W3C) "HTTP Vocabulary in RDF".
On April 1, 2014, RFC 7168 extended HTCPCP to fully handle teapots.
Commands and replies
HTCPCP is an extension of
HTTP
The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, w ...
. HTCPCP requests are identified with the
Uniform Resource Identifier (URI) scheme
coffee
(or the corresponding word in any other of the 29 listed languages) and contain several additions to the HTTP methods:
It also defines two
error responses:
Save 418 movement
On 5 August 2017, Mark Nottingham, chairman of the
IETF HTTPBIS
HTTP/2 (originally named HTTP/2.0) is a major revision of the HTTP network protocol used by the World Wide Web. It was derived from the earlier experimental SPDY protocol, originally developed by Google. HTTP/2 was developed by the HTTP Working ...
Working Group, called for the removal of status code 418 "I'm a teapot" from the
Node.js
Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript cod ...
platform, a code implemented in reference to the original 418 "I'm a teapot" established in Hyper Text Coffee Pot Control Protocol. On 6 August 2017, Nottingham requested that references to 418 "I'm a teapot" be removed from the programming language
Go and subsequently from
Python
Python may refer to:
Snakes
* Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia
** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia
* Python (mythology), a mythical serpent
Computing
* Python (pr ...
's
Requests
Request may refer to:
* a question, a request for information
* a petition, a formal document demanding something that is submitted to an authority.
Request may also refer to:
Computing and technology
* in computer science, a message sent be ...
and
ASP.NET
ASP.NET is an open-source, server-side web-application framework designed for web development to produce dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, applications and services. The name sta ...
's HttpAbstractions library as well.
In response, 15-year-old developer Shane Brunswick created a website, save418.com, and established the "Save 418 Movement", asserting that references to 418 "I'm a teapot" in different projects serve as "a reminder that the underlying processes of computers are still made by humans". Brunswick's site went viral in the hours following its publishing, garnering thousands of upvotes on the social platform
Reddit, and causing the mass adoption of the "#save418"
Twitter hashtag he introduced on his site. Heeding the public outcry, Node.js, Go, Python's Requests, and ASP.NET's HttpAbstractions library decided against removing 418 "I'm a teapot" from their respective projects. The unanimous support from the aforementioned projects and the general public prompted Nottingham to begin the process of having 418 marked as a reserved HTTP status code, ensuring that 418 will not be replaced by an official status code for the foreseeable future.
On 5 October 2020, Python 3.9 released with an updated http library including
418 IM_A_TEAPOT
status code. In the corresponding pull request, the Save 418 movement was directly cited in support of adoption.
Usage
The status code 418 is sometimes returned by servers when blocking a request, instead of the more appropriate
403 Forbidden
HTTP 403 is an HTTP status code meaning access to the requested resource is forbidden. The server understood the request, but will not fulfill it.
Specifications
HTTP 403 provides a distinct error case from HTTP 401; while HTTP 401 is returned ...
. Around the time of the
2021–2022 Russo-Ukrainian crisis
In March and April 2021, Russian president Vladimir Putin ordered the Russian military to begin massing thousands of personnel and equipment near its border with Ukraine and in Crimea, representing the largest mobilization since the annex ...
, the
Russian military
The Armed Forces of the Russian Federation (, ), commonly referred to as the Russian Armed Forces, are the military forces of Russia. In terms of active-duty personnel, they are the world's fifth-largest military force, with at least two ...
website mil.ru returned the HTTP 418 status code when accessed from outside of Russia as a
DDoS attack protection measure. The change was first noticed in December of 2021.
See also
*
Trojan Room coffee pot
The Trojan Room coffee pot was a coffee machine located in the Computer Laboratory of the University of Cambridge, England. Created in 1991 by Quentin Stafford-Fraser and Paul Jardetzky, it was migrated from their laboratory network to the web ...
*
Internet of things
*
References
External links
Google's demo page: Error 418 (I'm a teapot)!?Package teapot HTCPCP-TEA implementationby David Skinner
save418.comerror418.net
{{Error messages
Request for Comments
Application layer protocols
Computer errors
Computer humor
April Fools' Day jokes
1998 hoaxes
Coffee preparation
Teapots