Hyper Text Coffee Pot Control Protocol (HTCPCP) について
Hyper Text Coffee Pot Control Protocol(ハイパー・テキスト・
コーヒーポット・コントロール・プロトコル、HTCPCP)は、HTTPを拡張し、
コーヒーポットの制御、監視、診断を行うための
通信プロトコルです。
1998年4月1日にRFC 2324として発表されましたが、これは
エイプリルフール恒例のジョークRFCとして公開されたものです。
2014年4月1日には、紅茶向けに拡張したHTCPCP-TEA (Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances) がRFC 7168として公開されましたが、こちらも
エイプリルフールのジョークRFCです。
概要
RFC 2324はラリー・マシンターによって執筆されました。彼はこれを風刺と表現し、「HTTPを不適切に拡張する方法を特定すること」を目的としたと述べています。プロトコルの文言には、「
コーヒーを淹れるために設計されたプロトコルには、強く、暗く、豊かな要求がある」といったジョークが盛り込まれています。
エイプリルフールに公開されたジョークRFCですが、プロトコル自体は実行可能です。エディタの
Emacsには、完全に機能するHTCPCPクライアントの実装(coffee.el)があります。また、Mozillaのバグレポートには、HTCPCPに対応していないことに対する不満が多数寄せられています。大学生の研究テーマとして、実際にHTCPCPを実装した
コーヒーメーカーが試作されることもあります。
HTCPCP発表から10年後の2008年
4月1日には、
World Wide Web Consortium (W3C)の“HTTP Vocabulary in RDF”のパロディとして、Web-Controlled Coffee Consortium (WC3)が“HTCPCP Vocabulary in RDF”の初稿を発表しました。
HTTPをベースとしたプロトコルであるため、「
コーヒーポット側からクライアントに『
コーヒーが入った』等の通知を送ることができない」といった問題があります。このため、代替として、IRCや
Twitterによる通知機能を持たせた
コーヒーメーカー「萌香」が開発されるなど、代替案も提案されています。
コマンドと応答
HTCPCPはHTTPを拡張したプロトコルです。HTCPCPリクエストは、URIスキーム `coffee` (または、29の言語における「
コーヒー」を意味する単語。日本語の「
コーヒー」も含まれる)で識別されます。HTTPメソッドを以下のように拡張しています。
- - `BREW`: コーヒーを淹れるリクエスト
- - `GET`: コーヒーポットの状態を取得
- - `POST`: コーヒーの材料を投入するリクエスト
- - `PUT`: コーヒーポットの状態を変更するリクエスト
エラー応答として、以下の2つが定義されています。
- - `406 Not Acceptable`: コーヒーを淹れるためのメディアタイプが認識されない場合
- - `500 Server Error`: サーバー内部エラー
また、一時的にサーバーに
コーヒーがない場合は、汎用のステータスコード503が返されます。
Save 418 movement
2017年8月5日、IETF HTTPBISワーキンググループの議長であるマーク・ノッティンガムは、HTCPCPを参照して実装されたステータスコード418 "I'm a teapot" を
Node.jsプラットフォームから削除するよう求めました。その後、Go、
PythonのRequestsライブラリ、ASP.NETのHttpAbstractionsライブラリからも削除を要求しました。
これに対し、15歳の開発者シェーン・ブランズウィックがウェブサイトsave418.comを立ち上げ、"Save 418 Movement"(418を守れ運動)を開始しました。彼は、様々なプロジェクトで418が参照されることは、「コンピュータの基礎となるプロセスがまだ人間によって作られていることを思い出させる」と主張しました。この運動は、ソーシャルプラットフォーム
Redditで数千の支持を集め、ハッシュタグ"#save418"が広く使用されました。
世間の反発を受け、
Node.js、Go、
PythonのRequestsライブラリ、ASP.NETのHttpAbstractionsライブラリは、418を削除しないことを決定しました。これらのプロジェクトと一般の人々からの支持を受けて、ノッティンガムは、418を公式のステータスコードとして予約するプロセスを開始し、RFC 9110で正式に未使用(予約済み)となりました。
関連項目
- - トロイの部屋のコーヒーポット
- - モノのインターネット (Internet of things)
- - ISO 3103 - 紅茶の入れ方の国際標準規格
- - Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances
- - ロシア国防省 - 2022年2月24日以降、ロシア国外から同省ウェブサイトへアクセスした際、エラーコード418を用いてアクセスを遮断していた。
外部リンク