
HTTPステータスコード「418 I’m a teapot」は、エイプリルフールのジョーク
システム運用に携わっていると、日常的に「200 OK」や「404 Not Found(見つかりません)」、「503 Service Unavailable(サービス利用不可)」といったHTTPステータスコードを目にしますよね。
しかし、数あるコードの中には、思わず「どういうこと?」と首をかしげてしまうような、ユニークなものが存在します。その代表格が、今回ご紹介する「418 I’m a teapot(私はティーポットです)」です!

そもそも、418エラーとは?
HTTPステータスコード「418 I’m a teapot」は、サーバーがリクエストの処理を拒否していることを示すクライアントエラーの一種です。
例えば503エラー(Service Unavailable)の場合は、サーバーが過負荷やメンテナンスなどで「一時的に」リクエストを処理できない状態を示します。そのため、「今はできないが、後でまた試してほしい」というニュアンスになります。
これに対し418エラー(I’m a teapot)は、そもそも機能が備わっていないため、恒久的にリクエストに応えられない、という状態を示します。
発端はエイプリルフールのジョーク
このステータスコードの発端は、1998年の4月1日。
インターネットの技術ルールを決めるIETFという組織が「インターネット経由でコーヒーポットを操作するための通信ルール(HTCPCP)」一つの文書を発表しました。要するに、「パソコンからボタンを押したら、遠くにあるコーヒーメーカーがコーヒーを淹れてくれる、そんな仕組みのルールを考えました!」と大真面目な顔で発表したのです。
当時、何でもかんでもインターネットに繋げようとする風潮がありました。それに対して、技術者たちが「そんな調子で何でも繋いでたら、そのうちコーヒーポットまで操作することになるぞ!」という、ちょっと皮肉を込めたユーモアで返したのがこの提案です。
「私はティーポットです」と応答するサーバー
もちろん、これはエイプリルフールのための壮大なジョークです。この「インターネットでコーヒーを淹れる」という架空の物語の中で、彼らはさらに面白い設定を考えました。
「もし、この仕組みを使って、間違ってティーポットに『コーヒーを淹れろ』と命令を送ってしまったら、ティーポットはどう答えるだろう?」
その答えとして用意されたのが、「418 I’m a teapot」です。
これは、命令されたティーポットからの返事で、「(ごめんなさい、私はコーヒーを淹れる機能がない)私はティーポットです」という意味です。つまり、「そもそも役割が違うので、その仕事はできません」ということを伝える、このジョークの物語専用のエラーコードとして生まれたのです。
I’m a teapot廃止に反対! #Save418運動
2017年、HTTPの仕様策定を主導するIETFのワーキンググループ議長から、「418 I’m a teapot」をステータスコードの登録簿から削除する提案がなされました。ジョークが公式仕様に含まれるのは技術的に不適切であり、将来のために使うべき貴重なコード番号を一つ消費している、というのが主な理由でした。
しかし、この削除提案に対し、世界中の開発者が即座に反応。「#Save418」を合言葉に、SNSやソフトウェア開発プラットフォームのGitHub上で、コードの存続を求める大規模な運動が巻き起こったのです。
この熱意あるコミュニティの声を受け、IETFは最終的に削除案を撤回。さらに、「418」を正式に「Reserved(予約済み)」のステータスとして指定しました。これにより、このコードが将来他の用途で上書きされることがなくなり、「I’m a teapot」は事実上、永続的に保護されるという形で決着しました。
開発者に愛されるジョークコードの今
そんな経緯もあり、「418 I’m a teapot」は開発者コミュニティの間で広く知れ渡り、一種のイースターエッグ(隠し機能)として様々な場所で実装されています。
Googleでも、418エラーページは健在です。(エラーページはこちら)

また、Node.jsやASP.NETなど、一部のフレームワークではこのステータスコードが実装されています。 Google Cloud Functionsのドキュメントにも、PHPで418レスポンスを返すサンプルコードが掲載されています。
まとめ
今回は、HTTPステータスコードの中でもひときわ異彩を放つ「418 I’m a teapot」について、その誕生の経緯から開発者コミュニティに愛される現在までをご紹介しました。
インターネット経由でコーヒーポットを操作するというアイデアは、1998年当時は「ありえない未来」を皮肉った、技術者たちの秀逸なジョークでした。
しかし、IoTの概念がすっかり社会に浸透した現代、かつて笑いのタネだった家電の遠隔操作も、今やごく当たり前の光景です。皮肉なことに、技術の進化は四半世紀の時を経て、かつての壮大なジョークに追いついてしまいました。
「418 I’m a teapot」は、もはや単なる面白いエラーコードではなく、技術の進歩がいかに私たちの想像を超えるかを物語る、歴史の証人のような存在と言えるのかもしれません。日々の業務でこのコードに出会うことがあれば、そんなインターネットの歩みに思いを馳せてみるのも一興ではないでしょうか。