皆さんはHTTPステータスコードの「418」はご存知ですか?
ITに詳しい方なら勿論知ってますよね?と煽ったりはしませんが、今回はそんなITにまつわる知ってて得もしないし損もしない。そんなIT豆知識を紹介します。
ステータスコード「418」の真実
418 I’m a teapot.
通常、ステータスコードは以下のガイドにそってウェブページの返却状態を示します。
300番台…リダイレクト(ex. 301 Moved Permanently)
400番台…ユーザー側のエラー(ex. 404 Not Found)
500番台…サーバー側のエラー(ex. 500 Internal Server Error)
端的に言うと「大真面目に策定されたジョーク」です。
ジョークで策定された「HTCPCP/1.0」の規格
ステータスコード418の規格はRFC2324の「HTCPCP/1.0」にて決められています。
HTCPCPとは「Hyper Text Coffee Pot Control Protocol (ハイパーテキストコーヒーポット制御プロトコル)」の略称で、コーヒーを淹れるコーヒーポットを制御するプロトコルです。
1998年に策定されました。
……は?と真面目な方は思うかもしれませんがその通り。これは全てジョークで作成されたプロトコルなのです。
なんで「Teapot」なの?
そして、ステータスメッセージ「I’m a teapot.」の意味。RFC2324には以下の通りに定められています。
セクション2.3.2
Any attempt to brew coffee with a teapot should result in the error code “418 I’m a teapot”.
The resulting entity body MAY be short and stout.
日本語訳は「ティーポットでコーヒーを淹れようとすると、「418 I’m a teapot」というエラーコードが表示されるはずです。その結果、エンティティは短くてがっしりしたものになる可能性があります。」
つまり、「コーヒーを淹れるためのコーヒーポットで紅茶は淹れられないよ!」という意味で紅茶を入れようとした(サイトにアクセスしようとした)ユーザーによって発生したエラーだと言うことです。
なので、利用者に問題がある場合に使われる400番代を返すと言うわけです。なるほど…となるか!こんなしょーもない事を真剣に策定するな!(と心做しか思ってしまいました。海外のユーモアは常に驚かされます)
Googleにも418を返す特設サイトがある!
そんなステータスコード418ですが、Googleにも418を返却するページが有るんです。
上記サイトにアクセスすると、「The requested entity body is short and stout. Tip me over and pour me out.」というメッセージとともにGoogle特有の質素なエラー画面が表示されます。
日本語訳すると、「要求されたエンティティ本体は短くて頑丈です。 私をひっくり返して、私を注ぎ出します。」と。
Google翻訳を用いたので文が変になってますが、ここで言う「私」とはイラストのコーヒーポットなのでしょう。
そして、更に謎なのがポットをクリックするとカップにコーヒーらしき物を注いでくれる。意味がわからない…
サンプルコード・デモ
以下に418ステータスコードを返却するPHPスクリプトを掲載しました。ぜひ自分でPHPが動くサーバーを持っているならば置いてみましょう。「俺ジョーク知ってるぜ」感が出せると思います。
<?php //ステータスコード418 http_response_code( 418 ) ; ?> <h1>I'm a teapot.</h1>
以上参考になれば幸いです。
コメント