Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Hyper Text Coffee Pot Control Protocol

From Wikipedia, the free encyclopedia
April Fool's joke about facetious communications protocol
Hyper Text Coffee Pot Control Protocol
Back-end infrastructure of error418.net, which implements HTCPCP using ateapot andRaspberry Pi
International standardInternet Engineering Task Force
Developed byLarry Masinter
IntroducedApril 1, 1998 (1998-04-01)
Websiterfc2324
Working teapot implementing HTCPCP[1]

TheHyper Text Coffee Pot Control Protocol (HTCPCP) is a facetiouscommunication protocol for controlling, monitoring, and diagnosingcoffee pots. It is specified inRFC 2324, published on 1 April 1998 as anApril Fools' Day RFC,[2] as part of anApril Fools prank.[3] An extension, HTCPCP-TEA, was published asRFC 7168 on 1 April 2014[4] to support brewing teas, also as an April Fools' Day RFC in error 418.

Protocol

[edit]

RFC 2324 was written byLarry Masinter, who describes it as a satire, saying "This has a serious purpose – it identifies many of the ways in whichHTTP has been extended inappropriately."[5] 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 designedespressoly 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 editorEmacs includes a fully functional client-side implementation of it,[6] and a number of bug reports exist complaining aboutMozilla's lack of support for the protocol.[7] Ten years after the publication of HTCPCP, the Web-Controlled Coffee Consortium (WC3) published a first draft of "HTCPCP Vocabulary inRDF"[8] in parody of theWorld Wide Web Consortium (W3C)'s "HTTP Vocabulary in RDF".[9]

On April 1, 2014,RFC 7168 extended HTCPCP to fully handle teapots.[4]

Commands and replies

[edit]

HTCPCP is an extension ofHTTP. HTCPCP requests are identified with theUniform Resource Identifier (URI) schemecoffee (or the corresponding word in any other of the 29 listed languages) and contain several additions to the HTTP methods:

MethodDefinition
BREW orPOSTCauses the HTCPCP server to brewcoffee. Using POST for this purpose is deprecated. A newHTTP request header field, "Accept-Additions", is proposed, supporting optional additions including Cream, Whole-milk, Vanilla, Raspberry,Whisky,Aquavit, etc.
GET"Retrieves" coffee from the HTCPCP server.
PROPFINDReturnsmetadata about the coffee.
WHENSays "when", causing the HTCPCP server to stop pouringmilk into the coffee (if applicable).

It also defines threeerror responses:

Status codeDefinition
406 Not AcceptableThe HTCPCP server is unable to provide the requested addition for some reason; the response should indicate a list of available additions. The RFC observes, "In practice, most automated coffee pots cannot currently provide additions."
418 I'm a teapotThe HTCPCP server is ateapot; the resulting entity body "may be short and stout" (a reference to the song "I'm a Little Teapot"). Demonstrations of this behaviour exist.[1][10]
503 Service UnavailableAccording to Mozilla Developer Documentation, "A combined coffee/tea pot that is temporarily out of coffee should instead return 503", when requested to brew.[11]

Save 418 movement

[edit]

On 5 August 2017, Mark Nottingham, chairman of theIETFHTTPBIS Working Group, called for the removal of status code 418 "I'm a teapot" from theNode.js platform, a code implemented in reference to the original 418 "I'm a teapot" established in Hyper Text Coffee Pot Control Protocol.[12] On 6 August 2017, Nottingham requested that references to 418 "I'm a teapot" be removed from the programming languageGo[13] and subsequently fromPython'sRequests[14] andASP.NET's HttpAbstractions library[15] as well.

In response, 15-year-old developer Shane Brunswick created a website, save418.com,[16] 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 platformReddit,[17] 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,[18] 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 including418 IM_A_TEAPOT status code.[19] In the corresponding pull request, the Save 418 movement was directly cited in support of adoption.[20]

Usage

[edit]

The status code 418 is sometimes returned by servers when blocking a request, instead of the more appropriate403 Forbidden,[21] or404 Not Found.[22]

Around the time of the 2022Russian invasion of Ukraine, theRussian military website mil.ru returned the HTTP 418 status code when accessed from outside of Russia as aDDoS attack protection measure.[23][24] The change was first noticed in December of 2021.[25]

See also

[edit]

References

[edit]
  1. ^abReddington, Joseph,Illustrated implementation of Error 418, archived fromthe original on 2015-09-06, retrieved2014-10-18
  2. ^Masinter, Larry M. (April 1998), "Request for Comments 2324",Network Working Group,IETF,archived from the original on 2012-04-04, retrieved2012-03-20
  3. ^DeNardis, Laura (30 September 2009).Protocol Politics: The Globalization of Internet Governance. MIT Press. pp. 27ff.ISBN 978-0-262-04257-4. Retrieved8 May 2012.
  4. ^abNazar, Imran (April 2014), "Request for Comments 7168",The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA),IETF,archived from the original on 2014-05-29, retrieved2014-04-22
  5. ^Masinter, Larry."IETF RFCs". Archived fromthe original on 2013-03-27.
  6. ^"Emacs extension: coffee.el",Emarsden, Chez,archived from the original on 2009-02-01, retrieved2009-02-10.
  7. ^"Bug 46647 – (coffeehandler) HTCPCP not supported (RFC2324)",Bugzilla, Mozilla,archived from the original on 2011-05-14, retrieved2005-12-21
  8. ^HTCPCP Vocabulary in RDF – WC3 RFC Draft, Chief Arabica (Web-Controlled Coffee Consortium), 1 April 2008,archived from the original on 15 May 2021, retrieved17 March 2023 – via github
  9. ^Koch, Johannes (ed.),HTTP Vocabulary in RDF, et al,W3,archived from the original on 15 October 2009, retrieved17 August 2009
  10. ^"A Goblin Teasmade teamaker with an implementation of Error 418". Archived fromthe original on 2014-12-06. Retrieved2014-07-26.
  11. ^"418 I'm a teapot - HTTP | MDN".developer.mozilla.org. 2023-04-10. Retrieved2023-09-21.
  12. ^Nottingham, Mark."418 I'm A Teapot #14644".Archived from the original on 2017-08-10. Retrieved2017-08-12 – via github.
  13. ^Nottingham, Mark."net/http: remove support for status code 418 I'm a Teapot".Archived from the original on 2017-08-10. Retrieved2017-08-12 – via github.
  14. ^Nottingham, Mark."418 418 I'm a Teapot #4238".Archived from the original on 2021-05-15. Retrieved2017-08-12 – via github.
  15. ^Nottingham, Mark."418 I'm a Teapot #915".Archived from the original on 2019-05-10. Retrieved2017-08-12 – via github.
  16. ^Brunswick, Shane (2017-09-10)."We are the teapots".The Save 418 Movement.Archived from the original on 2021-05-15. Retrieved2021-05-15.
  17. ^"HTTP Error Code 418 I'm a Teapot is about to be removed from Node. We've gotta do something. [x-post /r/webdev]".Archived from the original on 2017-08-11. Retrieved2017-08-12 – via reddit.
  18. ^Nottingham, Mark."Reserving 418".Archived from the original on 2017-08-13. Retrieved2017-08-12 – via github.
  19. ^"What's New In Python 3.9 — Python 3.9.0 documentation".Python Documentation. 2020-10-05.Archived from the original on 2020-10-07. Retrieved2020-10-08.
  20. ^"Issue 39507: http library missing HTTP status code 418 "I'm a teapot" – Python tracker".bugs.python.org.Archived from the original on 2020-10-14. Retrieved2020-10-08.
  21. ^"Enable extra web security on a website".DreamHost. Retrieved2022-12-18.
  22. ^"I use 418 as a reply to illegitimate bots […]". 2024-10-28 – via Hacker News.
  23. ^"Russia appears to deploy digital defenses after DDoS attacks".The Record by Recorded Future. 2022-02-25. Retrieved2022-02-26.
  24. ^"I Went to a Russian Website and All I Got Was This Lousy Teapot".PCMag. Retrieved2022-02-28.
  25. ^"Russian MoD website blocked for non-Russian IPs | Hacker News".

External links

[edit]
Networking protocols
Data formats
April Fools' Day RFC
Official
Unofficial
System failure
Application failure
Device and data errors
Other
Lists
Related
Retrieved from "https://en.wikipedia.org/w/index.php?title=Hyper_Text_Coffee_Pot_Control_Protocol&oldid=1296138214"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp