ゆるテックノート

HTTPステータス 418 I'm a teapot とは?

HTTPステータス「418 I'm a teapot」は、1998年のエイプリルフールRFC「Hyper Text Coffee Pot Control Protocol (RFC2324)」で定義された遊びのコードです。現在のHTTP仕様RFC 9110とIANA登録簿では418は「(Unused)」として予約されています。「ティーポット」という由来と、現在の登録上の扱いを分けて見てみましょう。

エイプリルフールRFCが出典 ☕

RFC2324は「コーヒーポット制御プロトコル」を名乗るジョーク仕様で、その中に418が登場します。

RFC2324の位置づけ

  • 1998年4月1日に公開されたエイプリルフールRFC。
  • ティーポットでコーヒーを淹れようとしたときに418を返す、という設定です。コーヒーポットで紅茶を淹れる話ではありません(RFC 2324 §2.3.2)。
  • IANAのHTTPステータス登録簿には418 (Unused)として掲載されています。RFC 9110 §15.5.19はジョーク実装の歴史を踏まえて番号を予約しており、一般用途の意味を新たに割り当てたわけではありません。

レスポンス例

ジョーク応答をHTTP/1.1で表した学習用の例です。本文はASCIIの16バイトで、末尾改行を含めません。

HTTP/1.1 418 I'm a teapot
Content-Type: text/plain
Content-Length: 16

Short and stout.

どこで見かけるか 🧪

デモやテストサービス、ライブラリなどで見かけることがあります。実際に返された理由は、そのサービスの仕様や応答内容で確認します。

よくあるケース

  • 一部のWebサーバーが特定パス(/teapotなど)で隠しレスポンスとして返す。
  • HTTPテストサービスやライブラリがジョークエンドポイントとして実装している場合がある。
  • ドキュメントやブログで「HTTPの小ネタ」として紹介される。

注意点

  • ティーポットという意味は一般のHTTPエラー処理に使う定義ではありません。意味を認識しないクライアントは4xxクラスとして扱います。
  • 監視側の対応表によって、未知のコードとして表示される場合があります。表示名だけで成功・失敗を判断しないようにします。

実務ではどうする? 💡

ジョークコードなので本番では使わず、標準ステータスで表現するのが無難です。

おすすめの取り扱い

  • エラーハンドリングやAPI設計では、4xx/5xxの正式ステータス(400, 404, 418以外など)を使用する。
  • ログに418が出ても無害な冗談とは決めつけず、対象URL、応答本文、サービスのドキュメントを調べ、期待した処理が成功したか確認します。
  • 学習用にはRFC 2324の由来と、RFC 9110の予約済み番号という現在の位置づけを区別します。通常のAPIでは意味に合うステータスコードを選びましょう。

仕様・関連資料

RFC 2324 §2.3.2 / RFC 9110 §15.5.19 / IANA HTTP Status Codes