Hyper Text Coffee Pot Control Protocol

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
error418.netにて展示されたHTCPCPの実装[1]
デンビー社英語版製のティーポットをネットブックにくっつけた形でのHTCPCP-TEAの実装

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

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

概要[編集]

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

エイプリルフールに発行されたジョーク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]など、本プロトコルの代替となるものも提案されている。

コマンドと応答[編集]

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

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

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

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

Save 418 movement[編集]

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

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

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

脚注[編集]

[脚注の使い方]

注釈[編集]

  1. ^ expressly(正確に)とespresso(エスプレッソ)を掛けたもの
  2. ^ 相手が飲み物を注ぐのをそこで止めるよう要求する言葉。日本語では「そこまで」等に相当する。

出典[編集]

  1. ^ "Error 418 - I'm a Teapot". error418.net (英語). 2020年6月2日閲覧
  2. ^ “Request for Comments 2324”, Network Working Group, IETF, http://tools.ietf.org/html/rfc2324 
  3. ^ DeNardis, Laura (30 September 2009). Protocol Politics: The Globalization of Internet Governance. MIT Press. pp. 27ff. ISBN 978-0-262-04257-4. https://books.google.com/books?id=Secqz0XQJIsC&pg=PA27 2012年5月8日閲覧。 
  4. ^ “Request for Comments 7168”, The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA), IETF, https://tools.ietf.org/html/rfc7168 
  5. ^ Larry Masinter. “IETF RFCs”. 2013年3月27日時点のオリジナルよりアーカイブ。2020年6月7日閲覧。
  6. ^ “Emacs extension: coffee.el”, Emarsden, Chez, http://emarsden.chez.com/downloads/ 
  7. ^ “Bug 46647 – (coffeehandler) HTCPCP not supported (RFC2324)”, Bugzilla (Mozilla), https://bugzilla.mozilla.org/show_bug.cgi?id=46647 
  8. ^ 2002年度基礎工学部電子システム学コースPBL” (日本語). 大阪大学基礎工学部システム科学科. 2020年6月2日閲覧。
  9. ^ Koch, Johannes, ed., HTTP Vocabulary in RDF, et al, W3, http://www.w3.org/TR/HTTP-in-RDF/ 2009年8月17日閲覧。 
  10. ^ HTCPCP Vocabulary in RDF – WC3 RFC Draft, Chief Arabica (Web-Controlled Coffee Consortium), (1 April 2008), https://cstrobbe.github.io/WC3/TR/2008/RFC-htcpcp-in-rdf-20080401/ 2017年4月27日閲覧。 
  11. ^ 井上恭輔 (2009年2月27日). “オンラインコーヒーメーカー「萌香たん」とはじめるドキドキ☆コーヒーブレイク” (日本語). 2020年6月2日閲覧。
  12. ^ Reddington, Joseph, Illustrated implementation of Error 418, http://joereddington.com/projects/418-error-code-teapot/ 2014年10月18日閲覧。 
  13. ^ A Goblin Teasmade teamaker with an implementation of Error 418”. 2014年7月26日閲覧。
  14. ^ Mark Nottingham. “418 I'm A Teapot #14644”. 2020年6月7日閲覧。
  15. ^ Mark Nottingham. “net/http: remove support for status code 418 I'm a Teapot”. 2020年6月7日閲覧。
  16. ^ Mark Nottingham. “418 418 I'm a Teapot #4238”. 2020年6月7日閲覧。
  17. ^ Mark Nottingham. “418 I'm a Teapot #915”. 2020年6月7日閲覧。
  18. ^ Shane Brunswick. “The Save 418 Movement – We are the teapots”. 2020年6月7日閲覧。
  19. ^ HTTP Error Code 418 I'm a Teapot is about to be removed from Node. We've gotta do something. [x-post /r/webdev]”. 2020年6月7日閲覧。
  20. ^ Mark Nottingham. “Reserving 418”. 2020年6月7日閲覧。

関連項目[編集]

外部リンク[編集]