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