トップQs
タイムライン
チャット
視点

Hyper Text Coffee Pot Control Protocol

コーヒーポットの制御・監視・診断のための通信プロトコル。 ウィキペディアから

Hyper Text Coffee Pot Control Protocol
Remove ads

Hyper Text Coffee Pot Control Protocol(ハイパー・テキスト・コーヒーポット・コントロール・プロトコル、HTCPCPハイパーテキスト・コーヒーポット制御プロトコル)は、HTTPの拡張でコーヒーポットの制御、監視、診断を行うための通信プロトコルである。1998年4月1日に発行されたRFCRFC 2324で規定されているが[2]、これはエイプリルフール恒例のジョークRFCとして公開されたものである[3]

Thumb
error418.netにて展示されたHTCPCPの実装[1]
Thumb
デンビー社英語版製のティーポットをネットブックにくっつけた形でのHTCPCP-TEAの実装

2014年4月1日には、紅茶向けに拡張したHTCPCP-TEA (Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances) がRFC 7168として公開された[4]が、これもエイプリルフールのジョークRFCである。

Remove ads

概要

RFC 2324ラリー・マシンター英語版が執筆したものである。彼はこれを風刺と表現し、「これは真面目な目的を持っている――それはHTTPを不適切に拡張する方法を特定することである。」と書いている[5]。しかし、プロトコルの文言からして、これが完全に真面目な目的ではないことは明らかである。例えば、"there is a strong, dark, rich requirement for a protocol designed espressoly for the brewing of coffee"(コーヒーを淹れるためにエスプレッソリー[注釈 1]設計したプロトコルには、強く、暗く、豊かな[注釈 2]要求がある)と書かれている。

エイプリルフールに発行されたジョークRFCではあるが、プロトコルそのものは実行可能なものであり、エディタのEmacsには、完全に機能するHTCPCPクライアントの実装 (coffee.el) が存在する[6]Mozillaのバグレポートには、このプロトコルに対応していないことに対する不満を訴えるものが多数存在する[7]。また、大学生の研究対象として、実際にHTCPCPを実装したコーヒーメーカーを試作するといったことも行われている[8]

HTCPCPの発表から10年後の2008年4月1日、World Wide Web Consortium (W3C) の “HTTP Vocabulary in RDF[9]のパロディとして、Web-Controlled Coffee Consortium (WC3) が “HTCPCP Vocabulary in RDF” の初稿を発表した[10]

HTTPをベースとしたプロトコルであるため、「コーヒーポット側からクライアントに『コーヒーが入った』等の通知を送ることができない」などの問題を抱えており(元々がジョークRFCであるため仕方のないことではあるが)、本プロトコルの代わりにIRCTwitterによる通知機能を持たせたコーヒーメーカー「萌香」が開発される[11]など、本プロトコルの代替となるものも提案されている。

Remove ads

コマンドと応答

HTCPCPはHTTPを拡張したものである。HTCPCPリクエストは、URIスキーム coffee (または、29の言語における「コーヒー」を意味する単語。日本語の「コーヒー」も含まれている。)で識別され、HTTPメソッドを以下のように拡張している。

BREW または POSTHTCPCPサーバにコーヒーを淹れさせる。この目的でPOSTを使用することは推奨されていない。新しいHTTPリクエストヘッダフィールド “Accept-Additions” が提案されており、クリーム、全乳、バニラ、ラズベリー、ウィスキー、アクアビットなどのオプションの追加に対応している。
GETHTCPCPサーバからコーヒーを「取得」する。
PROPFINDコーヒーに関するメタデータを返す。
WHEN“When”[注釈 3]と言うと、HTCPCPサーバがコーヒーにミルクを注ぐのを止める(該当する場合)。なお、このコマンドの説明の最後は Enough? Say WHEN.(説明はもうたくさん? なら WHEN と言い給え。) と結ばれている。

以下の2つのエラー応答が定義されている。

406 Not AcceptableHTCPCPサーバは何らかの理由でAccept-Addition要求を提供できない。応答では、利用可能なオプション機能の一覧を示す必要がある。RFCには次のように書かれている。「実際には、ほとんどの自動化コーヒーポットは、現在のところ追加を提供することはできない。」
418 I'm a teapotHTCPCPサーバはティーポット英語版である[12]。結果として得られるエンティティ本体は「背が低くてがっしりしている」かもしれない(これは『アイム・ア・リトル・ティーポット英語版』という子供向けの歌の歌詞の引用である)。この動作のデモンストレーションが存在する[13][14]

また、一時的にサーバにコーヒーがなくなった場合には、汎用のステータスコード503が返される。

Remove ads

Save 418 movement

2017年8月5日、IETF HTTPBISワーキンググループの議長であるマーク・ノッティンガム英語版は、HTCPCPを参照して実装されたステータスコード418 "I'm a teapot" をNode.jsプラットフォームから削除するよう求めた[15]。2017年8月6日、ノッティンガムは、プログラミング言語Goから 418 "I'm a teapot" への参照を削除することを要求し[16]、その後PythonRequestsライブラリ[17]ASP.NETのHttpAbstractionsライブラリ[18]からも削除するよう要求した。

これを受けて、15歳の開発者シェーン・ブランズウィック (Shane Brunswick) はウェブサイト save418.com を作成し[19]、“Save 418 Movement”(418を守れ運動)を立ち上げた。彼は、様々なプロジェクトで 418 "I'm a teapot" が参照されることは、「コンピュータの基礎となるプロセスがまだ人間によって作られていることを思い起こさせる」ことになると主張した。ブランズウィックのサイトは、ソーシャル・プラットフォームRedditで数千のアップボート (upvotes) を集め[20]、彼のサイトで紹介されたTwitterのハッシュタグ"#save418"を多くの人が使用した。世間の反発を受けて、Node.js、Go、PythonのRequestsライブラリ、ASP.NETのHttpAbstractionsライブラリは、自らのプロジェクトにおいて 418 "I'm a teapot" を削除しないことを決定した。

これらのプロジェクトと一般の人々からの満場一致の支持を受けて、ノッティンガムは、418が当面の間、公式のステータスコードに置き換えられないことを保証するために、418を予約済みのHTTPステータスコードとしてマークするプロセスを開始し[21][22]RFC 9110で正式に未使用(予約済み)となった。

関連項目

外部リンク

脚注

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads