
ハイパーテキストコーヒーポット制御プロトコル(HTCPCP)は、コーヒーポットの制御、監視、診断を行うための冗談めいた通信プロトコルです。インターネット技術タスクフォースのRequest for Commentsの一部として、RFC 2324は1998年4月1日にエイプリルフールRFCとして公開されました[ 2 ]。これはエイプリルフールのいたずらの一環でした[ 3 ]。拡張版であるHTCPCP-TEAは、お茶の抽出をサポートするために、 2014年4月1日にRFC 7168として公開されました[ 4 ]。これもエイプリルフールRFCとして、エラー418で公開されました。
RFC 2324 はラリー・マジンターによって書かれたもので、彼はこれを風刺だと説明し、「これは真剣な目的を持っている。HTTPが不適切に拡張されてきた多くの方法を特定することだ」と述べている。 [ 5 ]プロトコルの文言から、それが完全に真剣なものではなかったことは明らかである。例えば、「エスプレッソコーヒーを淹れるために設計されたプロトコルには、強く、濃く、豊かな要求がある」と記されている。
その起源が冗談めいたものであるにもかかわらず、あるいはそのせいで、このプロトコルはオンライン上ではマイナーな存在にとどまっている。エディタのEmacsには、このプロトコルの完全な機能を持つクライアント側実装が含まれている[ 6 ] 。また、 Mozillaがこのプロトコルをサポートしていないことを訴えるバグ報告が多数存在する[ 7 ]。HTCPCPの公開から10年後、Web-Controlled Coffee Consortium(WC3)は、World Wide Web Consortium (W3C)の「HTTP Vocabulary in RDF」[9]をパロディ化した「HTCPCP Vocabulary in RDF」[8 ]の最初の草稿を公開した。
2014年4月1日、RFC 7168はHTCPCPを拡張し、ティーポットを完全に処理できるようにした。[ 4 ]
HTCPCPはHTTPの拡張機能です。HTCPCPリクエストは、Uniform Resource Identifier(URI)スキームcoffee(またはリストされている29言語のいずれかの対応する単語)で識別され、HTTPメソッドにいくつかの追加機能が含まれています。
また、以下の3つのエラー応答も定義しています。
2017年8月5日、IETF HTTPBISワーキンググループの議長であるマーク・ノッティンガムは、Hyper Text Coffee Pot Control Protocolで確立されたオリジナルの418 "I'm a teapot"を参照して実装されたコードである、Node.jsプラットフォームからのステータスコード418 "I'm a teapot"の削除を要求した。 [ 12 ] 2017年8月6日、ノッティンガムは、プログラミング言語Go [ 13 ]、そしてそれに続いてPythonのRequests [ 14 ]とASP.NETのHttpAbstractionsライブラリ[ 15 ]からも418 "I'm a teapot"への参照を削除するよう要求した。
これに対し、15歳の開発者シェーン・ブランズウィックは、save418.com [ 16 ]というウェブサイトを作成し、「Save 418 Movement」を立ち上げ、さまざまなプロジェクトで418 "I'm a teapot" を参照することは「コンピューターの基盤となるプロセスは依然として人間によって作られている」ことを思い出させるものだと主張した。ブランズウィックのサイトは公開後数時間で爆発的に広まり、ソーシャルプラットフォームのReddit [ 17 ]で数千の賛成票を獲得し、彼がサイトで紹介した「#save418」というTwitterハッシュタグが広く使われるようになった。世論の反発を受け、Node.js、Go、PythonのRequests、ASP.NETのHttpAbstractionsライブラリは、それぞれのプロジェクトから418 "I'm a teapot" を削除しないことを決定した。前述のプロジェクトと一般市民からの満場一致の支持を受けて、ノッティンガムは418を予約済みのHTTPステータスコードとしてマークするプロセスを開始し、[ 18 ] 418が当面の間、公式ステータスコードに置き換えられないことを保証しました。
2020年10月5日、418 IM_A_TEAPOTステータスコードを含む更新されたHTTPライブラリを搭載したPython 3.9がリリースされました。[ 19 ]対応するプルリクエストでは、採用を支持する根拠としてSave 418運動が直接引用されました。[ 20 ]
ステータスコード418は、Google.comの「私はティーポットです」イースターエッグなど、一部のウェブサイトでイースターエッグとして使用されています。 [ 21 ] [ 22 ]
ステータス 418 は、より適切な403 Forbidden [ 23 ]や404 Not Found [ 24 ]の代わりに、リクエストをブロックする際にサーバーから返されることもあります。2022年のロシアによるウクライナ侵攻 の頃、ロシア軍のWeb サイト mil.ru は、ロシア国外からアクセスされた際にDDoS 攻撃対策として HTTP 418 ステータス コードを返すようになりました。[ 25 ] [ 26 ]この変更は、2021 年 12 月に初めて確認されました。[ 27 ]
このプロトコルに準拠した実装は複数存在し、Go [ 28 ]、Python [ 29 ]、Javascript [ 30 ]でプログラミングされたサーバーなどがあり、少なくとも後者は実際にコーヒーポットを要求するために使用されたことがある。