【特集一覧】最新ガジェットから独占取材まで!
オタクに捧ぐ公式Twitter、始動(告知バナー)

ステータスコード「418」知ってますか?Googleにも使われている有名規格

皆さんはHTTPステータスコードの「418」はご存知ですか?

ITに詳しい方なら勿論知ってますよね?と煽ったりはしませんが、今回はそんなITにまつわる知ってて得もしないし損もしない。そんなIT豆知識を紹介します。

ステータスコード「418」の真実

418 I’m a teapot.

通常、ステータスコードは以下のガイドにそってウェブページの返却状態を示します。

200番台…成功(ex. 200 OK)
300番台…リダイレクト(ex. 301 Moved Permanently)
400番台…ユーザー側のエラー(ex. 404 Not Found)
500番台…サーバー側のエラー(ex. 500 Internal Server Error)
そんな中、あまり聞かないステータスコード「418」その正体はI’m a teapot.です。
1つ上の「ステータスコード419」はLaravelでのAPI開発などをした方なら必ず遭遇する、レートリミットに到達したことを示す物なのですが、じゃあ一体418は何者なのか。
端的に言うと「大真面目に策定されたジョーク」です。

ジョークで策定された「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を返却するページが有るんです。

Error 418 (I’m a teapot)!?

上記サイトにアクセスすると、「The requested entity body is short and stout. Tip me over and pour me out.」というメッセージとともにGoogle特有の質素なエラー画面が表示されます。

日本語訳すると、「要求されたエンティティ本体は短くて頑丈です。 私をひっくり返して、私を注ぎ出します。」と。
Google翻訳を用いたので文が変になってますが、ここで言う「私」とはイラストのコーヒーポットなのでしょう。

そして、更に謎なのがポットをクリックするとカップにコーヒーらしき物を注いでくれる。意味がわからない…

サンプルコード・デモ

Live Demo

以下に418ステータスコードを返却するPHPスクリプトを掲載しました。ぜひ自分でPHPが動くサーバーを持っているならば置いてみましょう。「俺ジョーク知ってるぜ」感が出せると思います。

<?php
    //ステータスコード418
    http_response_code( 418 ) ;
?>
<h1>I'm a teapot.</h1>

以上参考になれば幸いです。

コメント

タイトルとURLをコピーしました