<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Hyper_Text_Coffee_Pot_Control_Protocol</id>
	<title>Hyper Text Coffee Pot Control Protocol - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Hyper_Text_Coffee_Pot_Control_Protocol"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Hyper_Text_Coffee_Pot_Control_Protocol&amp;action=history"/>
	<updated>2026-05-04T15:24:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Hyper_Text_Coffee_Pot_Control_Protocol&amp;diff=1214123&amp;oldid=prev</id>
		<title>imported&gt;HereticHazel: incorrect number of error responses</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Hyper_Text_Coffee_Pot_Control_Protocol&amp;diff=1214123&amp;oldid=prev"/>
		<updated>2025-06-18T02:18:44Z</updated>

		<summary type="html">&lt;p&gt;incorrect number of error responses&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|April Fool&amp;#039;s joke about facetious communications protocol}}&lt;br /&gt;
{{Infobox protocol&lt;br /&gt;
| name        = Hyper Text Coffee Pot Control Protocol&lt;br /&gt;
| image       = Htcpcp teapot.jpg&lt;br /&gt;
| alt         = &lt;br /&gt;
| caption     = [[Frontend and backend|Back-end]] infrastructure of error418.net, which implements HTCPCP using a [[teapot]] and [[Raspberry Pi]]&lt;br /&gt;
| standard    = [[Internet Engineering Task Force]]&lt;br /&gt;
| developer   = [[Larry Masinter]]&lt;br /&gt;
| introdate   = {{Start date|1998|04|01}}&lt;br /&gt;
| industry    = &amp;lt;!--industries used (such as PC/Chemical/Multimedia)--&amp;gt;&lt;br /&gt;
| connector   = &amp;lt;!--connector(s) usable with protocol--&amp;gt;&lt;br /&gt;
| hardware    = &amp;lt;!--examples of compatible hardware--&amp;gt;&lt;br /&gt;
| range       = &amp;lt;!--{{convert|X|mi|abbr=on}}--&amp;gt;&lt;br /&gt;
| newer       = &amp;lt;!--superseded by which protocol--&amp;gt;&lt;br /&gt;
| website     = [https://datatracker.ietf.org/doc/html/rfc2324 rfc2324]&lt;br /&gt;
}}&lt;br /&gt;
[[File:HTCPCP Pot.jpg|thumb|Working teapot implementing HTCPCP&amp;lt;ref name=JR /&amp;gt;]]&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Hyper Text Coffee Pot Control Protocol&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;HTCPCP&amp;#039;&amp;#039;&amp;#039;) is a facetious [[communication protocol]] for controlling, monitoring, and diagnosing [[coffee pot]]s. It is specified in {{IETF RFC|2324}}, published on 1 April 1998 as an [[April Fools&amp;#039; Day Request for Comments|April Fools&amp;#039; Day RFC]],&amp;lt;ref&amp;gt;{{Citation | url = http://tools.ietf.org/html/rfc2324 | title = Network Working Group | date = April 1998 | contribution = Request for Comments 2324 | publisher = [[Internet Engineering Task Force|IETF]] | access-date = 2012-03-20 | archive-date = 2012-04-04 | archive-url = https://web.archive.org/web/20120404141825/http://tools.ietf.org/html/rfc2324 | url-status = live | last1 = Masinter | first1 = Larry M. }}&amp;lt;/ref&amp;gt; as part of an [[April Fools&amp;#039; Day|April Fools prank]].&amp;lt;ref&amp;gt;{{Cite book |last=DeNardis |first=Laura |url={{google books|plainurl=yes|id=Secqz0XQJIsC|pg=PA27}} |title=Protocol Politics: The Globalization of Internet Governance |date=30 September 2009 |publisher=MIT Press |isbn=978-0-262-04257-4 |pages=27ff |access-date=8 May 2012}}&amp;lt;/ref&amp;gt; An extension, HTCPCP-TEA, was published as [https://tools.ietf.org/html/rfc7168 RFC 7168] on 1 April 2014&amp;lt;ref name=rfc7168&amp;gt;{{Citation | url = https://tools.ietf.org/html/rfc7168 | title = The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA) | date = April 2014 | contribution = Request for Comments 7168 | publisher = [[Internet Engineering Task Force|IETF]] | access-date = 2014-04-22 | archive-date = 2014-05-29 | archive-url = https://web.archive.org/web/20140529225719/http://tools.ietf.org/html/rfc7168 | url-status = live | last1 = Nazar | first1 = Imran }}&amp;lt;/ref&amp;gt; to support brewing teas, also as an April Fools&amp;#039; Day RFC in error 418.&lt;br /&gt;
&lt;br /&gt;
==Protocol==&lt;br /&gt;
[https://tools.ietf.org/html/rfc2324 RFC 2324] was written by [[Larry Masinter]], who describes it as a satire, saying &amp;quot;This has a serious purpose &amp;amp;ndash; it identifies many of the ways in which [[HTTP]] has been extended inappropriately.&amp;quot;&amp;lt;ref&amp;gt;{{Cite web |last=Masinter |first=Larry  |author-link=Larry Masinter |title=IETF RFCs |url=http://larry.masinter.net |url-status=dead |archive-url=https://web.archive.org/web/20130327202242/http://larry.masinter.net/ |archive-date=2013-03-27}}&amp;lt;/ref&amp;gt; The wording of the protocol made it clear that it was not entirely serious; for example, it notes that &amp;quot;there is a strong, dark, rich requirement for a protocol designed [[espresso]]ly for the brewing of coffee&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
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,&amp;lt;ref&amp;gt;{{Citation | title = Emarsden | url = http://emarsden.chez.com/downloads/ | publisher = Chez | contribution = Emacs extension: coffee.el | access-date = 2009-02-10 | archive-date = 2009-02-01 | archive-url = https://web.archive.org/web/20090201001552/http://emarsden.chez.com/downloads/ | url-status = live }}.&amp;lt;/ref&amp;gt; and a number of bug reports exist complaining about [[Mozilla]]&amp;#039;s lack of support for the protocol.&amp;lt;ref&amp;gt;{{Citation|title=Bug 46647 – (coffeehandler) HTCPCP not supported (RFC2324)|url=https://bugzilla.mozilla.org/show_bug.cgi?id=46647|work=Bugzilla|publisher=Mozilla|access-date=2005-12-21|archive-date=2011-05-14|archive-url=https://web.archive.org/web/20110514065147/https://bugzilla.mozilla.org/show_bug.cgi?id=46647|url-status=live}}&amp;lt;/ref&amp;gt; Ten years after the publication of HTCPCP, the Web-Controlled Coffee Consortium (WC3) published a first draft of &amp;quot;HTCPCP Vocabulary in [[Resource Description Framework|RDF]]&amp;quot;&amp;lt;ref&amp;gt;{{Citation |title=HTCPCP Vocabulary in RDF – WC3 RFC Draft |date=1 April 2008 |url=https://cstrobbe.gitlab.io/WC3/TR/2008/RFC-htcpcp-in-rdf-20080401/ |publisher=Chief Arabica (Web-Controlled Coffee Consortium) |access-date=17 March 2023 |via=github |archive-date=15 May 2021 |archive-url=https://web.archive.org/web/20210515041835/https://cstrobbe.github.io/WC3/TR/2008/RFC-htcpcp-in-rdf-20080401/ |url-status=live }}&amp;lt;/ref&amp;gt; in parody of the [[World Wide Web Consortium]] (W3C)&amp;#039;s &amp;quot;HTTP Vocabulary in RDF&amp;quot;.&amp;lt;ref&amp;gt;{{Citation | editor-first = Johannes | editor-last = Koch | others = et al | url = http://www.w3.org/TR/HTTP-in-RDF/ | title = HTTP Vocabulary in RDF | publisher = [[World Wide Web Consortium|W3]] | access-date = 17 August 2009 | archive-date = 15 October 2009 | archive-url = https://web.archive.org/web/20091015080216/http://www.w3.org/TR/HTTP-in-RDF/ | url-status = live }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On April 1, 2014, [https://tools.ietf.org/html/rfc7168 RFC 7168] extended HTCPCP to fully handle teapots.&amp;lt;ref name=rfc7168 /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Commands and replies==&lt;br /&gt;
HTCPCP is an extension of [[Hypertext Transfer Protocol|HTTP]]. HTCPCP requests are identified with the [[Uniform Resource Identifier]] (URI) scheme &amp;lt;code&amp;gt;coffee&amp;lt;/code&amp;gt; (or the corresponding word in any other of the 29 listed languages) and contain several additions to the HTTP methods:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Method !! Definition&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;code&amp;gt;BREW&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;POST&amp;lt;/code&amp;gt;||Causes the HTCPCP server to brew [[coffee]]. Using POST for this purpose is deprecated. A new [[HTTP header#Requests|HTTP request header field]], &amp;quot;Accept-Additions&amp;quot;, is proposed, supporting optional additions including Cream, Whole-milk, Vanilla, Raspberry, [[Whisky]], [[Akvavit|Aquavit]], etc.&lt;br /&gt;
|- valign=top&lt;br /&gt;
|&amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt;||&amp;quot;Retrieves&amp;quot; coffee from the HTCPCP server.&lt;br /&gt;
|- valign=top&lt;br /&gt;
|&amp;lt;code&amp;gt;PROPFIND&amp;lt;/code&amp;gt;||Returns [[metadata]] about the coffee.&lt;br /&gt;
|- valign=top&lt;br /&gt;
|&amp;lt;code&amp;gt;WHEN&amp;lt;/code&amp;gt;||[[wikt:say when|Says &amp;quot;when&amp;quot;]], causing the HTCPCP server to stop pouring [[milk]] into the coffee (if applicable).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It also defines three [[List of HTTP status codes#4xx client errors|error responses]]:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status code !! Definition&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;code&amp;gt;{{nowrap|406 Not Acceptable}}&amp;lt;/code&amp;gt;||The HTCPCP server is unable to provide the requested addition for some reason; the response should indicate a list of available additions. The RFC observes, &amp;quot;In practice, most automated coffee pots cannot currently provide additions.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;code&amp;gt;{{nowrap|418 I&amp;#039;m a teapot}}&amp;lt;/code&amp;gt;||The HTCPCP server is a [[teapot]]; the resulting entity body &amp;quot;may be short and stout&amp;quot; (a reference to the song &amp;quot;[[I&amp;#039;m a Little Teapot]]&amp;quot;). Demonstrations of this behaviour exist.&amp;lt;ref name=&amp;quot;JR&amp;quot;&amp;gt;{{Citation |last=Reddington |first=Joseph |title=Illustrated implementation of Error 418 |url=http://joereddington.com/projects/418-error-code-teapot/ |archive-url=https://web.archive.org/web/20150906071854/http://joereddington.com/projects/418-error-code-teapot/ |access-date=2014-10-18 |archive-date=2015-09-06 |url-status=dead}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |url=http://www.qdh.org.uk/wordpress/?p=546 |title=A Goblin Teasmade teamaker with an implementation of Error 418 |access-date=2014-07-26 |archive-url=https://web.archive.org/web/20141206053112/http://www.qdh.org.uk/wordpress/?p=546 |archive-date=2014-12-06 |url-status=dead }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;code&amp;gt;{{nowrap|503 Service Unavailable}}&amp;lt;/code&amp;gt;||According to Mozilla Developer Documentation, &amp;quot;A combined coffee/tea pot that is temporarily out of coffee should instead return 503&amp;quot;, when requested to brew.&amp;lt;ref&amp;gt;{{Cite web |date=2023-04-10 |title=418 I&amp;#039;m a teapot - HTTP {{!}} MDN |url=https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/418 |access-date=2023-09-21 |website=developer.mozilla.org |language=en-US}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Save 418 movement==&lt;br /&gt;
On 5 August 2017, Mark Nottingham, chairman of the [[IETF]] [[HTTPBIS]] Working Group, called for the removal of status code 418 &amp;quot;I&amp;#039;m a teapot&amp;quot; from the [[Node.js]] platform, a code implemented in reference to the original 418 &amp;quot;I&amp;#039;m a teapot&amp;quot; established in Hyper Text Coffee Pot Control Protocol.&amp;lt;ref&amp;gt;{{Cite web |last=Nottingham |first=Mark |title=418 I&amp;#039;m A Teapot #14644 |url=https://github.com/nodejs/node/issues/14644#issue-248218948 |via=github |access-date=2017-08-12 |archive-date=2017-08-10 |archive-url=https://web.archive.org/web/20170810220743/https://github.com/nodejs/node/issues/14644#issue-248218948 |url-status=live }}&amp;lt;/ref&amp;gt; On 6 August 2017, Nottingham requested that references to 418 &amp;quot;I&amp;#039;m a teapot&amp;quot; be removed from the programming language [[Go (programming language)|Go]]&amp;lt;ref&amp;gt;{{Cite web |last=Nottingham |first=Mark |title=net/http: remove support for status code 418 I&amp;#039;m a Teapot |url=https://github.com/golang/go/issues/21326#issue-248234750 |via=github |access-date=2017-08-12 |archive-date=2017-08-10 |archive-url=https://web.archive.org/web/20170810220643/https://github.com/golang/go/issues/21326#issue-248234750 |url-status=live }}&amp;lt;/ref&amp;gt; and subsequently from [[Python (programming language)|Python]]&amp;#039;s [[Requests (software)|Requests]]&amp;lt;ref&amp;gt;{{Cite web |last=Nottingham |first=Mark |title=418 418 I&amp;#039;m a Teapot #4238 |url=https://github.com/requests/requests/issues/4238#issue-249497185 |via=github |access-date=2017-08-12 |archive-date=2021-05-15 |archive-url=https://web.archive.org/web/20210515041837/https://github.com/psf/requests/issues/4238#issue-249497185 |url-status=live }}&amp;lt;/ref&amp;gt; and [[ASP.NET]]&amp;#039;s HttpAbstractions library&amp;lt;ref&amp;gt;{{Cite web |last=Nottingham |first=Mark |title=418 I&amp;#039;m a Teapot #915 |url=https://github.com/aspnet/HttpAbstractions/issues/915 |via=github |access-date=2017-08-12 |archive-date=2019-05-10 |archive-url=https://web.archive.org/web/20190510155446/https://github.com/aspnet/HttpAbstractions/issues/915 |url-status=live }}&amp;lt;/ref&amp;gt; as well.&lt;br /&gt;
&lt;br /&gt;
In response, 15-year-old developer Shane Brunswick created a website, save418.com,&amp;lt;ref&amp;gt;{{Cite web |last=Brunswick |first=Shane |title=We are the teapots |url=http://save418.com |website=The Save 418 Movement |date=2017-09-10 |access-date=2021-05-15 |archive-date=2021-05-15 |archive-url=https://web.archive.org/web/20210515041851/https://save418.com/ |url-status=live }}&amp;lt;/ref&amp;gt; and established the &amp;quot;Save 418 Movement&amp;quot;, asserting that references to 418 &amp;quot;I&amp;#039;m a teapot&amp;quot; in different projects serve as &amp;quot;a reminder that the underlying processes of computers are still made by humans&amp;quot;. Brunswick&amp;#039;s site went viral in the hours following its publishing, garnering thousands of upvotes on the social platform [[Reddit]],&amp;lt;ref&amp;gt;{{Cite web |title=HTTP Error Code 418 I&amp;#039;m a Teapot is about to be removed from Node. We&amp;#039;ve gotta do something. [x-post /r/webdev] |url=https://www.reddit.com/r/programming/comments/6sxea0/http_error_code_418_im_a_teapot_is_about_to_be/ |via=reddit |access-date=2017-08-12 |archive-date=2017-08-11 |archive-url=https://web.archive.org/web/20170811223038/https://www.reddit.com/r/programming/comments/6sxea0/http_error_code_418_im_a_teapot_is_about_to_be/ |url-status=live }}&amp;lt;/ref&amp;gt; and causing the mass adoption of the &amp;quot;#save418&amp;quot; [[Twitter]] hashtag he introduced on his site. Heeding the public outcry, Node.js, Go, Python&amp;#039;s Requests, and ASP.NET&amp;#039;s HttpAbstractions library decided against removing 418 &amp;quot;I&amp;#039;m a teapot&amp;quot; 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,&amp;lt;ref&amp;gt;{{Cite web |last=Nottingham |first=Mark |title=Reserving 418 |url=https://lists.w3.org/Archives/Public/ietf-http-wg/2017JulSep/0332.html |via=github |access-date=2017-08-12 |archive-date=2017-08-13 |archive-url=https://web.archive.org/web/20170813012814/https://lists.w3.org/Archives/Public/ietf-http-wg/2017JulSep/0332.html |url-status=live }}&amp;lt;/ref&amp;gt; ensuring that 418 will not be replaced by an official status code for the foreseeable future.&lt;br /&gt;
&lt;br /&gt;
On 5 October 2020, Python 3.9 released with an updated HTTP library including &amp;lt;code&amp;gt;418 IM_A_TEAPOT&amp;lt;/code&amp;gt; status code.&amp;lt;ref&amp;gt;{{Cite web|date=2020-10-05|title=What&amp;#039;s New In Python 3.9 — Python 3.9.0 documentation|url=https://docs.python.org/3/whatsnew/3.9.html#http|access-date=2020-10-08|website=Python Documentation|archive-date=2020-10-07|archive-url=https://web.archive.org/web/20201007172936/https://docs.python.org/3/whatsnew/3.9.html#http|url-status=live}}&amp;lt;/ref&amp;gt; In the corresponding pull request, the Save 418 movement was directly cited in support of adoption.&amp;lt;ref&amp;gt;{{Cite web|title=Issue 39507: http library missing HTTP status code 418 &amp;quot;I&amp;#039;m a teapot&amp;quot; – Python tracker|url=https://bugs.python.org/issue39507#msg361134|access-date=2020-10-08|website=bugs.python.org|archive-date=2020-10-14|archive-url=https://web.archive.org/web/20201014070511/https://bugs.python.org/issue39507#msg361134|url-status=live}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The status code 418 is sometimes returned by servers when blocking a request, instead of the more appropriate [[HTTP 403|403 Forbidden]],&amp;lt;ref&amp;gt;{{cite web|url=https://help.dreamhost.com/hc/en-us/articles/215947927-Enable-extra-web-security-on-a-website|title=Enable extra web security on a website|access-date=2022-12-18|website=[[DreamHost]]|language=en}}&amp;lt;/ref&amp;gt; or [[HTTP 404|404 Not Found]].&amp;lt;ref&amp;gt;{{cite web|url=https://news.ycombinator.com/item?id=41967897#41971887|title=I use 418 as a reply to illegitimate bots […]|via=Hacker News|date=2024-10-28}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Around the time of the 2022 [[Russian invasion of Ukraine]], the [[Russian military]] website mil.ru returned the HTTP 418 status code when accessed from outside of Russia as a [[Denial-of-service attack|DDoS attack]] protection measure.&amp;lt;ref&amp;gt;{{Cite web |date=2022-02-25 |title=Russia appears to deploy digital defenses after DDoS attacks |url=https://therecord.media/russia-appears-to-deploy-digital-defenses-after-ddos-attacks/ |access-date=2022-02-26 |website=[[The Record by Recorded Future]] |language=en}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |title=I Went to a Russian Website and All I Got Was This Lousy Teapot |url=https://www.pcmag.com/news/i-went-to-a-russian-website-and-all-i-got-was-this-lousy-teapot |access-date=2022-02-28 |website=[[PCMag]] |language=en}}&amp;lt;/ref&amp;gt; The change was first noticed in December of 2021.&amp;lt;ref&amp;gt;{{cite web | url=https://news.ycombinator.com/item?id=29594249 | title=Russian MoD website blocked for non-Russian IPs &amp;amp;#124; Hacker News }}&amp;lt;/ref&amp;gt;&amp;lt;!-- use https://cheapskatesguide.org/articles/kiwifarms.html or something better --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Trojan Room coffee pot]]&lt;br /&gt;
* [[Internet of things]]&lt;br /&gt;
* {{section link|List of HTTP status codes|4xx client errors}}&lt;br /&gt;
* [[Utah teapot]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Reflist|colwidth=30em}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [https://www.google.com/teapot Google&amp;#039;s demo page: Error 418 (I&amp;#039;m a teapot)!?]&lt;br /&gt;
* [https://godoc.org/github.com/davsk/teapot Package teapot HTCPCP-TEA implementation] by David Skinner&lt;br /&gt;
* [https://save418.com/ save418.com]&lt;br /&gt;
* [http://www.error418.net/ error418.net] {{Webarchive|url=https://web.archive.org/web/20210107214915/http://www.error418.net/ |date=2021-01-07 }}&lt;br /&gt;
&lt;br /&gt;
{{IETF RFC 1st april}}&lt;br /&gt;
{{URI scheme}}&lt;br /&gt;
{{Error messages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Request for Comments]]&lt;br /&gt;
[[Category:Application layer protocols]]&lt;br /&gt;
[[Category:Computer errors]]&lt;br /&gt;
[[Category:Computer humour]]&lt;br /&gt;
[[Category:April Fools&amp;#039; Day jokes]]&lt;br /&gt;
[[Category:1998 hoaxes]]&lt;br /&gt;
[[Category:Coffee preparation]]&lt;br /&gt;
[[Category:Teapots]]&lt;/div&gt;</summary>
		<author><name>imported&gt;HereticHazel</name></author>
	</entry>
</feed>