www.fgks.org   »   [go: up one dir, main page]

コンテンツにスキップ

「Hyper Text Coffee Pot Control Protocol」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
 
(6人の利用者による、間の8版が非表示)
1行目: 1行目:
[[File:Htcpcp teapot.jpg|thumb|right|error418.netにて展示されたHTCPCPの実装<ref>{{Cite web2|language=en|website=error418.net|url=http://www.error418.net/|title=Error 418 - I'm a Teapot|access-date=2 June 2020}}</ref>]]
[[File:Htcpcp teapot.jpg|thumb|right|error418.netにて展示されたHTCPCPの実装<ref>{{Cite web2|language=en|website=error418.net|url=http://www.error418.net/|title=Error 418 - I'm a Teapot|access-date=2 June 2020}}</ref>]]
[[File:HTCPCP Pot.jpg|thumb|right|{{仮リンク|デンビー・ポッテリー・カンパニー|en|Denby Pottery Company|label=デンビー社}}製のティーポットを[[ネットブック]]にくっつけた形でのHTCPCP-TEAの実装]]
[[File:HTCPCP Pot.jpg|thumb|right|{{仮リンク|デンビー・ポッテリー・カンパニー|en|Denby Pottery Company|label=デンビー社}}製のティーポットを[[ネットブック]]にくっつけた形でのHTCPCP-TEAの実装]]
'''Hyper Text Coffee Pot Control Protocol'''(ハイパー・テキスト・コーヒーポット・コントロール・プロトコル、'''HTCPCP'''、'''ハイパーテキスト・コーヒーポット制御プロトコル''')は、[[Hypertext Transfer Protocol|HTTP]]の拡張で[[コーヒーメーカー|コーヒーポット]]の制御、監視、診断を行うための[[通信プロトコル]]である。[[1998年]][[4月1日]]に発行された[[Request for Comments|RFC]]の{{IETF RFC|2324}}で規定されているが<ref>{{Citation | url = http://tools.ietf.org/html/rfc2324 | title = Network Working Group | contribution = Request for Comments 2324 | publisher = [[Internet Engineering Task Force|IETF]]}}</ref>、これは[[エイプリルフール]]恒例の[[ジョークRFC]]として公開されたものである<ref>{{cite book|first=Laura|last=DeNardis|title=Protocol Politics: The Globalization of Internet Governance|url=https://books.google.com/books?id=Secqz0XQJIsC&pg=PA27|accessdate=8 May 2012|date=30 September 2009|publisher=MIT Press|isbn=978-0-262-04257-4|pages=27ff}}</ref>。
'''Hyper Text Coffee Pot Control Protocol'''(ハイパー・テキスト・コーヒーポット・コントロール・プロトコル、'''HTCPCP'''、'''ハイパーテキスト・コーヒーポット制御プロトコル''')は、[[Hypertext Transfer Protocol|HTTP]]の拡張で[[コーヒーメーカー|コーヒーポット]]の制御、監視、診断を行うための[[通信プロトコル]]である。[[1998年]][[4月1日]]に発行された[[Request for Comments|RFC]]の{{IETF RFC|2324}}で規定されているが<ref>{{Citation | url = https://datatracker.ietf.org/doc/html/rfc2324 | title = Network Working Group | contribution = Request for Comments 2324 | publisher = [[Internet Engineering Task Force|IETF]]}}</ref>、これは[[エイプリルフール]]恒例の[[ジョークRFC]]として公開されたものである<ref>{{cite book|first=Laura|last=DeNardis|title=Protocol Politics: The Globalization of Internet Governance|url=https://books.google.com/books?id=Secqz0XQJIsC&pg=PA27|accessdate=8 May 2012|date=30 September 2009|publisher=MIT Press|isbn=978-0-262-04257-4|pages=27ff}}</ref>。


[[2014年]][[4月1日]]には、[[紅茶]]向けに拡張した'''HTCPCP-TEA'''([[Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances]])が{{IETF RFC|7168}}として公開された<ref name=rfc7168>{{Citation | url = https://tools.ietf.org/html/rfc7168 | title = The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA)| contribution = Request for Comments 7168 | publisher = [[Internet Engineering Task Force|IETF]]}}</ref>が、これもエイプリルフールのジョークRFCである。
[[2014年]][[4月1日]]には、[[紅茶]]向けに拡張した'''HTCPCP-TEA''' ([[Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances]]) が{{IETF RFC|7168}}として公開された<ref name=rfc7168>{{Citation | url = https://datatracker.ietf.org/doc/html/rfc7168 | title = The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA)| contribution = Request for Comments 7168 | publisher = [[Internet Engineering Task Force|IETF]]}}</ref>が、これもエイプリルフールのジョークRFCである。


==概要==
==概要==
RFC 2324 は{{仮リンク|ラリー・マシンター|en|Larry Masinter}}が執筆したものである。彼はこれを風刺と表現し、「これは真面目な目的を持っている――それは[[Hypertext Transfer Protocol|HTTP]]を不適切に拡張する方法を特定することである。」と書いている<ref>{{cite web |url=http://larry.masinter.net |author=Larry Masinter |title=IETF RFCs |archiveurl=https://web.archive.org/web/20130327202242/http://larry.masinter.net/ |archivedate=2013-03-27 |url-status=dead|accessdate=2020-06-07}}</ref>。しかし、プロトコルの文言からして、これが完全に真面目な目的ではないことは明らかである。例えば、"there is a strong, dark, rich requirement for a protocol designed espressoly for the brewing of coffee"(コーヒーを淹れるために[[エスプレッソ|エスプレッソリー]]に{{efn|expressly(正確に)とespresso(エスプレッソ)を掛けたもの}}設計したプロトコルには、強く、暗く、豊かな要求がある)と書かれている。
{{IETF RFC|2324}} は{{仮リンク|ラリー・マシンター|en|Larry Masinter}}が執筆したものである。彼はこれを風刺と表現し、「これは真面目な目的を持っている――それは[[Hypertext Transfer Protocol|HTTP]]を不適切に拡張する方法を特定することである。」と書いている<ref>{{cite web |url=http://larry.masinter.net |author=Larry Masinter |title=IETF RFCs |archiveurl=https://web.archive.org/web/20130327202242/http://larry.masinter.net/ |archivedate=2013-03-27 |url-status=dead|accessdate=2020-06-07}}</ref>。しかし、プロトコルの文言からして、これが完全に真面目な目的ではないことは明らかである。例えば、"there is a strong, dark, rich requirement for a protocol designed espressoly for the brewing of coffee"(コーヒーを淹れるために[[エスプレッソ|エスプレッソリー]]に{{efn|expressly(正確に)とespresso(エスプレッソ)を掛けたもの}}設計したプロトコルには、強く、暗く、豊かな要求がある)と書かれている。


エイプリルフールに発行されたジョークRFCではあるが、プロトコルそのものは実行可能なものであ、エディタの[[Emacs]]には、完全に機能するHTCPCPクライアントの実装(coffee.el)が存在する<ref>{{Citation | title = Emarsden | url = http://emarsden.chez.com/downloads/ | publisher = Chez | contribution = Emacs extension: coffee.el}}</ref>。[[Mozilla]]のバグレポートには、このプロトコルに対応していないことに対する不満を訴えるものが多数存在する<ref>{{Citation|title=Bug 46647 – (coffeehandler) HTCPCP not supported (RFC2324)|url=https://bugzilla.mozilla.org/show_bug.cgi?id=46647|work=Bugzilla|publisher=Mozilla}}</ref>。また、大学生の研究対象として、実際にHTCPCPを実装した[[コーヒーメーカー]]を試作するといったことも行われている<ref>{{Cite web|language=ja|url=http://www.sys.es.osaka-u.ac.jp/PBL/2002/PBL_report.html|title=2002年度基礎工学部電子システム学コースPBL|website=[[大阪大学]]基礎工学部システム科学科|accessdate=2020年6月2日}}</ref>。
エイプリルフールに発行されたジョークRFCではあるが、プロトコルそのものは実行可能なものであ、エディタの[[Emacs]]には、完全に機能するHTCPCPクライアントの実装 (coffee.el) が存在する<ref>{{Citation | title = Emarsden | url = http://emarsden.chez.com/downloads/ | publisher = Chez | contribution = Emacs extension: coffee.el}}</ref>。[[Mozilla]]のバグレポートには、このプロトコルに対応していないことに対する不満を訴えるものが多数存在する<ref>{{Citation|title=Bug 46647 – (coffeehandler) HTCPCP not supported (RFC2324)|url=https://bugzilla.mozilla.org/show_bug.cgi?id=46647|work=Bugzilla|publisher=Mozilla}}</ref>。また、大学生の研究対象として、実際にHTCPCPを実装した[[コーヒーメーカー]]を試作するといったことも行われている<ref>{{Cite web|和書|language=ja|url=http://www.sys.es.osaka-u.ac.jp/PBL/2002/PBL_report.html|title=2002年度基礎工学部電子システム学コースPBL|website=[[大阪大学]]基礎工学部システム科学科|accessdate=2020年6月2日}}</ref>。


HTCPCPの発表から10年後の2008年4月1日、[[World Wide Web Consortium]](W3C)の"HTTP Vocabulary in [[Resource Description Framework|RDF]]"<ref>{{Citation | editor-first = Johannes | editor-last = Koch | others = et al | url = http://www.w3.org/TR/HTTP-in-RDF/ | title = HTTP Vocabulary in RDF | publisher = [[World Wide Web Consortium|W3]] | accessdate = 17 August 2009}}</ref>のパロディとして、Web-Controlled Coffee Consortium(WC3)が"HTCPCP Vocabulary in RDF"の初稿を発表した<ref>{{Citation|publisher=Chief Arabica (Web-Controlled Coffee Consortium) |url=https://cstrobbe.github.io/WC3/TR/2008/RFC-htcpcp-in-rdf-20080401/ |title=HTCPCP Vocabulary in RDF – WC3 RFC Draft |date=1 April 2008 |accessdate=27 April 2017 |df= }}</ref>。
HTCPCPの発表から10年後の2008年4月1日、[[World Wide Web Consortium]] (W3C) “HTTP Vocabulary in [[Resource Description Framework|RDF]]<ref>{{Citation | editor-first = Johannes | editor-last = Koch | others = et al | url = http://www.w3.org/TR/HTTP-in-RDF/ | title = HTTP Vocabulary in RDF | publisher = [[World Wide Web Consortium|W3]] | accessdate = 17 August 2009}}</ref>のパロディとして、Web-Controlled Coffee Consortium (WC3) “HTCPCP Vocabulary in RDF” の初稿を発表した<ref>{{Citation|publisher=Chief Arabica (Web-Controlled Coffee Consortium) |url=https://cstrobbe.github.io/WC3/TR/2008/RFC-htcpcp-in-rdf-20080401/ |title=HTCPCP Vocabulary in RDF – WC3 RFC Draft |date=1 April 2008 |accessdate=27 April 2017 |df= }}</ref>。


HTTPをベースとしたプロトコルであるため、「コーヒーポット側からクライアントに『コーヒーが入った』等の通知を送ることができない」などの問題を抱えており(元々がジョークRFCであるため仕方のないことではあるが)、本プロトコルの代わりに[[インターネット・リレー・チャット|IRC]]・[[Twitter]]による通知機能を持たせたコーヒーメーカー「萌香」が開発される<ref>{{Cite web|language=ja|url=http://alpha.mixi.co.jp/entry/2009/10723/|title=オンラインコーヒーメーカー「萌香たん」とはじめるドキドキ☆コーヒーブレイク|date=2009年2月27日|author=井上恭輔|accessdate=2020年6月2日}}</ref>など、本プロトコルの代替となるものも提案されている。
HTTPをベースとしたプロトコルであるため、「コーヒーポット側からクライアントに『コーヒーが入った』等の通知を送ることができない」などの問題を抱えており(元々がジョークRFCであるため仕方のないことではあるが)、本プロトコルの代わりに[[インターネット・リレー・チャット|IRC]]・[[Twitter]]による通知機能を持たせたコーヒーメーカー「萌香」が開発される<ref>{{Cite web|和書|language=ja|url=http://alpha.mixi.co.jp/entry/2009/10723/|title=オンラインコーヒーメーカー「萌香たん」とはじめるドキドキ☆コーヒーブレイク|date=2009年2月27日|author=井上恭輔|accessdate=2020年6月2日}}</ref>など、本プロトコルの代替となるものも提案されている。


==コマンドと応答==
==コマンドと応答==
HTCPCPは[[Hypertext Transfer Protocol|HTTP]]を拡張したものである。HTCPCPリクエストは、[[Uniform Resource Identifier|URI]]スキーム <code>coffee</code> (または、29の言語における「コーヒー」を意味する単語。日本語の「コーヒー」も含まれている。)で識別され、HTTPメソッドを以下のように拡張している。
HTCPCPは[[Hypertext Transfer Protocol|HTTP]]を拡張したものである。HTCPCPリクエストは、[[Uniform Resource Identifier|URI]]スキーム {{code|coffee}} (または、29の言語における「コーヒー」を意味する単語。日本語の「コーヒー」も含まれている。)で識別され、HTTPメソッドを以下のように拡張している。
{|
{|
|width="150px" valign=top|<code>BREW</code> または <code>POST</code>||HTCPCPサーバに[[コーヒー]]を淹れさせる。この目的で<code>POST</code>を使用することは推奨されていない。新しいHTTPリクエストヘッダフィールド"Accept-Additions"が提案されており、クリーム、全乳、バニラ、ラズベリー、ウィスキー、アクアビットなどのオプションの追加に対応している。
|width="150px" valign=top|{{code|BREW}} または {{code|POST}} || HTCPCPサーバに[[コーヒー]]を淹れさせる。この目的で{{code|POST}}を使用することは推奨されていない。新しいHTTPリクエストヘッダフィールド “Accept-Additions” が提案されており、クリーム、全乳、バニラ、ラズベリー、ウィスキー、アクアビットなどのオプションの追加に対応している。
|- valign=top
|- valign=top
|<code>GET</code>||HTCPCPサーバからコーヒーを「取得」する。
| {{code|GET}} || HTCPCPサーバからコーヒーを「取得」する。
|- valign=top
|- valign=top
|<code>PROPFIND</code>||コーヒーに関する[[メタデータ]]を返す。
| {{code|PROPFIND}} || コーヒーに関する[[メタデータ]]を返す。
|- valign=top
|- valign=top
|<code>WHEN</code>||"When"{{efn|相手が飲み物を注ぐのをそこで止めるよ要求する言葉。日本語では「そこまで」等に相当する。}}と言うと、HTCPCPサーバがコーヒーにミルクを注ぐのを止める(該当する場合)。
| {{code|WHEN}}||“When”{{efn|英語で他人に飲み物や添え物を注いでもらう場合、注ぐ側が "Say when" と言い、注いでもらう側は十分な量に達したと "OK" "Enough" 等と返して止めてもらう。日本語ではそれぞれ「止めるときは言って」「そこまで」等に相当する。注いでもらうのを止めるために文字通り "When" と言った例としては、[[ガーフィールド (漫画)|ガーフィールド]]にてイルマがカフェでジョンのコーヒーカップに "Say when" と言ってコーヒーを注ぎ始め、コーヒーが溢れたところでようやくジョンが "When" と言った回がある。すなわち、このコマンドの仕様はダブルジョークである。}}と言うと、HTCPCPサーバがコーヒーにミルクを注ぐのを止める(該当する場合)。なお、このコマンドの説明の最後は ''Enough? Say WHEN.(説明はもうたくさん? なら WHEN と言い給え。)'' と結ばれている
|}
|}


以下の2つの[[HTTPステータスコード#4xx Client Error クライアントエラー|エラー応答]]が定義されている。
以下の2つの[[HTTPステータスコード#4xx Client Error クライアントエラー|エラー応答]]が定義されている。
{|
{|
|width="150px" valign=top|<code>406 Not Acceptable</code>||HTCPCPサーバは何らかの理由でAccept-Addition要求を提供できない。応答では、利用可能なオプション機能の一覧を示す必要がある。RFCには次のように書かれている。「実際には、ほとんどの自動化コーヒーポットは、現在のところ追加を提供することはできない。」
|width="150px" valign=top|{{code|406 Not Acceptable}} || HTCPCPサーバは何らかの理由でAccept-Addition要求を提供できない。応答では、利用可能なオプション機能の一覧を示す必要がある。RFCには次のように書かれている。「実際には、ほとんどの自動化コーヒーポットは、現在のところ追加を提供することはできない。」
|- valign=top
|- valign=top
|<code>418 I'm a teapot</code>||HTCPCPサーバは{{仮リンク|ティーポット|en|teapot|redirect=1}}である<ref>{{Cite web|title=HTTP - 418 私はティーポット - HTTP 418 I'm a teapot clientエラー応答コードは、サーバーが永続的にティーポットであるため、コーヒーの淹れ方を拒否したことを示しています - 日本語|url=https://runebook.dev/ja/docs/http/status/418|website=runebook.dev|accessdate=2021-09-05}}</ref>。結果として得られるエンティティ本体は「背が低くてがっしりしている」かもしれない(これは『{{仮リンク|アイム・ア・リトル・ティーポット|en|I'm a Little Teapot}}』という子供向けの歌の歌詞の引用である)。この動作のデモンストレーションが存在する<ref name=JR>{{Citation|url=http://joereddington.com/projects/418-error-code-teapot/|title=Illustrated implementation of Error 418|first=Joseph|last=Reddington|access-date=2014-10-18|archive-url=https://web.archive.org/web/20150906071854/http://joereddington.com/projects/418-error-code-teapot/|archive-date=2015-09-06|url-status=dead}}</ref><ref>{{Cite web |url=http://www.qdh.org.uk/wordpress/?p=546 |title=A Goblin Teasmade teamaker with an implementation of Error 418 |access-date=2014-07-26 |archive-url=https://web.archive.org/web/20141206053112/http://www.qdh.org.uk/wordpress/?p=546 |archive-date=2014-12-06 |url-status=dead }}</ref>。
| {{code|418 I'm a teapot}} || HTCPCPサーバは{{仮リンク|ティーポット|en|teapot|redirect=1}}である<ref>{{Cite web|和書|title=HTTP - 418 私はティーポット - HTTP 418 I'm a teapot clientエラー応答コードは、サーバーが永続的にティーポットであるため、コーヒーの淹れ方を拒否したことを示しています - 日本語|url=https://runebook.dev/ja/docs/http/status/418|website=runebook.dev|accessdate=2021-09-05}}</ref>。結果として得られるエンティティ本体は「背が低くてがっしりしている」かもしれない(これは『{{仮リンク|アイム・ア・リトル・ティーポット|en|I'm a Little Teapot}}』という子供向けの歌の歌詞の引用である)。この動作のデモンストレーションが存在する<ref name="JR">{{Citation|和書|title=Illustrated implementation of Error 418|last=Reddington|first=Joseph|year=|url=http://joereddington.com/projects/418-error-code-teapot/|archiveurl=https://web.archive.org/web/20150906071854/http://joereddington.com/projects/418-error-code-teapot/|access-date=2014-10-18|archivedate=2015-09-06|url-status=dead}}</ref><ref>{{Cite web |url=http://www.qdh.org.uk/wordpress/?p=546 |title=A Goblin Teasmade teamaker with an implementation of Error 418 |access-date=2014-07-26 |url-status=dead |archivedate=2014-12-06 |archiveurl=https://web.archive.org/web/20141206053112/http://www.qdh.org.uk/wordpress/?p=546}}</ref>。
|}
|}


36行目: 36行目:


==Save 418 movement==
==Save 418 movement==
2017年8月5日、[[IETF]] HTTPBISワーキンググループの議長である{{仮リンク|マーク・ノッティンガム|en|Mark Nottingham}}は、HTCPCPを参照して実装されたステータスコード418 "I'm a teapot"を[[Node.js]]プラットフォームから削除するよう求めた<ref>{{cite web|url=https://github.com/nodejs/node/issues/14644#issue-248218948 |author=Mark Nottingham|title=418 I'm A Teapot #14644 |author-link=Mark Nottingham|accessdate=2020-06-07}}</ref>。2017年8月6日、ノッティンガムは、プログラミング言語[[Go (プログラミング言語)|Go]]から418 "I'm a teapot"への参照を削除することを要求し<ref>{{cite web|url=https://github.com/golang/go/issues/21326#issue-248234750 |author=Mark Nottingham |title=net/http: remove support for status code 418 I'm a Teapot|accessdate=2020-06-07}}</ref>、その後[[Python]]の[[Requests]]ライブラリ<ref>{{cite web|url=https://github.com/psf/requests/issues/4238#issue-249497185 |author=Mark Nottingham |title=418 418 I'm a Teapot #4238|accessdate=2020-06-07}}</ref>や[[ASP.NET]]のHttpAbstractionsライブラリ<ref>{{cite web|url=https://github.com/aspnet/HttpAbstractions/issues/915 |author=Mark Nottingham |title=418 I'm a Teapot #915 |accessdate=2020-06-07}}</ref>からも削除するよう要求した。
2017年8月5日、[[IETF]] HTTPBISワーキンググループの議長である{{仮リンク|マーク・ノッティンガム|en|Mark Nottingham}}は、HTCPCPを参照して実装されたステータスコード418 "I'm a teapot" を[[Node.js]]プラットフォームから削除するよう求めた<ref>{{cite web|url=https://github.com/nodejs/node/issues/14644#issue-248218948 |author=Mark Nottingham|title=418 I'm A Teapot #14644 |author-link=Mark Nottingham|accessdate=2020-06-07}}</ref>。2017年8月6日、ノッティンガムは、プログラミング言語[[Go (プログラミング言語)|Go]]から 418 "I'm a teapot" への参照を削除することを要求し<ref>{{cite web|url=https://github.com/golang/go/issues/21326#issue-248234750 |author=Mark Nottingham |title=net/http: remove support for status code 418 I'm a Teapot|accessdate=2020-06-07}}</ref>、その後[[Python]]の[[Requests]]ライブラリ<ref>{{cite web|url=https://github.com/psf/requests/issues/4238#issue-249497185 |author=Mark Nottingham |title=418 418 I'm a Teapot #4238|accessdate=2020-06-07}}</ref>や[[ASP.NET]]のHttpAbstractionsライブラリ<ref>{{cite web|url=https://github.com/aspnet/HttpAbstractions/issues/915 |author=Mark Nottingham |title=418 I'm a Teapot #915 |accessdate=2020-06-07}}</ref>からも削除するよう要求した。


これを受けて、15歳の開発者シェーン・ブランズウィック(Shane Brunswick)はウェブサイト save418.com を作成し<ref>{{cite web|url=https://save418.com/|author=Shane Brunswick|title=The Save 418 Movement – We are the teapots|accessdate=2020-06-07}}</ref>、"Save 418 Movement"(418を守れ運動)を立ち上げた。彼は、様々なプロジェクトで418 "I'm a teapot"が参照されることは、「コンピュータの基礎となるプロセスがまだ人間によって作られていることを思い起こさせる」ことになると主張した。ブランズウィックのサイトは、ソーシャル・プラットフォーム[[Reddit]]で数千のアップボート(upvotes)を集め<ref>{{cite web|url=https://www.reddit.com/r/programming/comments/6sxea0/http_error_code_418_im_a_teapot_is_about_to_be/ |title=HTTP Error Code 418 I'm a Teapot is about to be removed from Node. We've gotta do something. [x-post /r/webdev] |accessdate=2020-06-07}}</ref>、彼のサイトで紹介されたTwitterの[[ハッシュタグ]]"#save418"を多くの人が使用した。世間の反発を受けて、Node.js、Go、PythonのRequestsライブラリ、ASP.NETのHttpAbstractionsライブラリは、自らのプロジェクトにおいて418 "I'm a teapot"を削除しないことを決定した。
これを受けて、15歳の開発者シェーン・ブランズウィック (Shane Brunswick) はウェブサイト save418.com を作成し<ref>{{cite web|url=https://save418.com/|author=Shane Brunswick|title=The Save 418 Movement – We are the teapots|accessdate=2020-06-07}}</ref>、“Save 418 Movement”(418を守れ運動)を立ち上げた。彼は、様々なプロジェクトで 418 "I'm a teapot" が参照されることは、「コンピュータの基礎となるプロセスがまだ人間によって作られていることを思い起こさせる」ことになると主張した。ブランズウィックのサイトは、ソーシャル・プラットフォーム[[Reddit]]で数千のアップボート (upvotes) を集め<ref>{{cite web|url=https://www.reddit.com/r/programming/comments/6sxea0/http_error_code_418_im_a_teapot_is_about_to_be/ |title=HTTP Error Code 418 I'm a Teapot is about to be removed from Node. We've gotta do something. [x-post /r/webdev] |accessdate=2020-06-07}}</ref>、彼のサイトで紹介されたTwitterの[[ハッシュタグ]]"#save418"を多くの人が使用した。世間の反発を受けて、Node.js、Go、PythonのRequestsライブラリ、ASP.NETのHttpAbstractionsライブラリは、自らのプロジェクトにおいて 418 "I'm a teapot" を削除しないことを決定した。


これらのプロジェクトと一般の人々からの満場一致の支持を受けて、ノッティンガムは、418が当面の間、公式のステータスコードに置き換えられないことを保証するために、418を予約済みのHTTPステータスコードとしてマークするプロセスを開始した<ref>{{cite web|url=https://lists.w3.org/Archives/Public/ietf-http-wg/2017JulSep/0332.html |author=Mark Nottingham |title=Reserving 418|accessdate=2020-06-07}}</ref><ref>{{Cite web |url=https://qiita.com/flano_yuki/items/ea251ac6b53bc54677d2 |title=HTTPで「418 I’m a tea pot」を実装してはいけない(2018/10/18追記) |website=[[Qiita]] |access-date=2021-09-06 |quote=現在HTTPbis WGではHTTP セマンティクスの再改定作業を行っています。「HTTP Semantics」この draft-03で418への言及が入りました。}}</ref>。
これらのプロジェクトと一般の人々からの満場一致の支持を受けて、ノッティンガムは、418が当面の間、公式のステータスコードに置き換えられないことを保証するために、418を予約済みのHTTPステータスコードとしてマークするプロセスを開始した<ref>{{cite web|url=https://lists.w3.org/Archives/Public/ietf-http-wg/2017JulSep/0332.html |author=Mark Nottingham |title=Reserving 418|accessdate=2020-06-07}}</ref><ref>{{Cite web|和書|url=https://qiita.com/flano_yuki/items/ea251ac6b53bc54677d2 |title=HTTPで「418 I’m a tea pot」を実装してはいけない(2018/10/18追記) |website=[[Qiita]] |access-date=2021-09-06 |quote=現在HTTPbis WGではHTTP セマンティクスの再改定作業を行っています。「HTTP Semantics」この draft-03で418への言及が入りました。}}</ref>。

==脚注==
{{脚注ヘルプ}}
===注釈===
{{notelist}}

===出典===
{{Reflist|2}}


==関連項目==
==関連項目==
{{Commons category|Coffee pots}}
* [[トロイの部屋のコーヒーポット]]
* [[トロイの部屋のコーヒーポット]]
* [[モノのインターネット]] (Internet of things)
* [[モノのインターネット]] (Internet of things)
57行目: 48行目:
* [[ISO 3103]] - 紅茶の入れ方の国際標準規格
* [[ISO 3103]] - 紅茶の入れ方の国際標準規格
* [[Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances]]
* [[Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances]]
* [[ロシア国防省]] - 2022年2月24日以降、ロシア国外から同省ホームページへアクセスした際、HTTP 418を用いてアクセスを遮断していたのが確認されている<ref>[https://www.itmedia.co.jp/news/articles/2202/24/news179.html ロシア国防省の公式Webサイトで接続障害 エラー名は「私はティーポット」?] —ITMedia(2022年2月24日、同日閲覧)</ref>
* [[ロシア国防省]] - 2022年2月24日以降、ロシア国外から同省ウェブサイトへアクセスした際、[[HTTPステータスコード#4xx_Client_Error_クライアントエラー|エラーコード418]]を用いてアクセスを遮断していたのが確認されている{{r|ITmedia NEWS 2022年2月24日}}


==外部リンク==
==外部リンク==
* {{IETF RFC|2324}} ([http://www.chibutsu.org/iorin/rfc/rfc2324.txt 和訳])
* {{IETF RFC|2324}}[http://www.chibutsu.org/iorin/rfc/rfc2324.txt 和訳]
* {{IETF RFC|7168}}
* {{IETF RFC|7168}}
* [https://www.google.com/teapot Error 418 (I’m a teapot)!?] - [[Google]]による418エラーのページ。このRFCで定義されているコード418が実際に返されている。
* [https://www.google.com/teapot Error 418 (I’m a teapot)!?] - [[Google]]による418エラーのページ。このRFCで定義されているコード418が実際に返されている。
* [https://godoc.org/github.com/davsk/teapot Package teapot HTCPCP-TEA implementation] by David Skinner
* [https://godoc.org/github.com/davsk/teapot Package teapot HTCPCP-TEA implementation] by David Skinner
* [http://www.error418.net/ error418.net]
* [http://www.error418.net/ error418.net]

==脚注==
{{脚注ヘルプ}}
===注釈===
{{Notelist}}
===出典===
{{Reflist|30em|refs=
<ref name="ITmedia NEWS 2022年2月24日">{{cite web2
| author = 松浦立樹
| url = https://www.itmedia.co.jp/news/articles/2202/24/news179.html
| url-status = live
| archiveurl = https://web.archive.org/web/20220224125036/itmedia.co.jp/news/articles/2202/24/news179.html
| title = ロシア国防省の公式Webサイトで接続障害 エラー名は「私はティーポット」?
| website = [[ITmedia NEWS]]
| date = 2022-2-24
| df = ja
| accessdate = 2022-2-24
| archivedate = 2022-2-24 }}</ref>
}}


{{DEFAULTSORT:はいはあてきすとこおひいほつとこんとろおるふろとこる}}
{{DEFAULTSORT:はいはあてきすとこおひいほつとこんとろおるふろとこる}}

2024年5月9日 (木) 05:43時点における最新版

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サーバがコーヒーにミルクを注ぐのを止める(該当する場合)。なお、このコマンドの説明の最後は Enough? Say WHEN.(説明はもうたくさん? なら WHEN と言い給え。) と結ばれている。

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

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

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

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]

関連項目[編集]

外部リンク[編集]

脚注[編集]

注釈[編集]

  1. ^ expressly(正確に)とespresso(エスプレッソ)を掛けたもの
  2. ^ 英語で他人に飲み物や添え物を注いでもらう場合、注ぐ側が "Say when" と言い、注いでもらう側は十分な量に達したところで "OK" "Enough" 等と返して止めてもらう。日本語ではそれぞれ「止めるときは言って」「そこまで」等に相当する。注いでもらうのを止めるために文字通り "When" と言った例としては、ガーフィールドにてイルマがカフェでジョンのコーヒーカップに "Say when" と言ってコーヒーを注ぎ始め、コーヒーが溢れたところでようやくジョンが "When" と言った回がある。すなわち、このコマンドの仕様はダブルジョークである。

出典[編集]

  1. ^ "Error 418 - I'm a Teapot". error418.net (英語). 2020年6月2日閲覧
  2. ^ “Request for Comments 2324”, Network Working Group, IETF, https://datatracker.ietf.org/doc/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://datatracker.ietf.org/doc/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. ^ HTTP - 418 私はティーポット - HTTP 418 I'm a teapot clientエラー応答コードは、サーバーが永続的にティーポットであるため、コーヒーの淹れ方を拒否したことを示しています - 日本語”. runebook.dev. 2021年9月5日閲覧。
  13. ^ ReddingtonJoseph『Illustrated implementation of Error 418』。 オリジナルの2015年9月6日時点におけるアーカイブhttps://web.archive.org/web/20150906071854/http://joereddington.com/projects/418-error-code-teapot/2014年10月18日閲覧 
  14. ^ A Goblin Teasmade teamaker with an implementation of Error 418”. 2014年12月6日時点のオリジナルよりアーカイブ。2014年7月26日閲覧。
  15. ^ Mark Nottingham. “418 I'm A Teapot #14644”. 2020年6月7日閲覧。
  16. ^ Mark Nottingham. “net/http: remove support for status code 418 I'm a Teapot”. 2020年6月7日閲覧。
  17. ^ Mark Nottingham. “418 418 I'm a Teapot #4238”. 2020年6月7日閲覧。
  18. ^ Mark Nottingham. “418 I'm a Teapot #915”. 2020年6月7日閲覧。
  19. ^ Shane Brunswick. “The Save 418 Movement – We are the teapots”. 2020年6月7日閲覧。
  20. ^ 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日閲覧。
  21. ^ Mark Nottingham. “Reserving 418”. 2020年6月7日閲覧。
  22. ^ HTTPで「418 I’m a tea pot」を実装してはいけない(2018/10/18追記)”. Qiita. 2021年9月6日閲覧。 “現在HTTPbis WGではHTTP セマンティクスの再改定作業を行っています。「HTTP Semantics」この draft-03で418への言及が入りました。”
  23. ^ 松浦立樹 (2022年2月24日). "ロシア国防省の公式Webサイトで接続障害 エラー名は「私はティーポット」?". ITmedia NEWS. 2022年2月24日時点のオリジナルよりアーカイブ。2022年2月24日閲覧