418 I’m a teapot

1998 年のエイプリルフールのジョークが定着したもの。

使いどころ

イースターエッグ専用。

よくある原因と対処法

418 は RFC 2324「Hyper Text Coffee Pot Control Protocol」に由来します。1998 年のエイプリルフール RFC です。HTTP の一部になったことはありませんが、多くのフレームワークが実装しており、2017 年に Node.js と Go から削除する提案が出た際は、公開キャンペーンを受けて取り下げられました。現在は RFC 9110 がこのコードを予約済みとしているため、他の用途に割り当てられることはありません。

実際に 418 を目にするのは、サイトやボットフィルターがスクレイパーに「立ち去れ」という合図として返す場合や、イースターエッグのページです。実際の API では使わないでください。クライアント、監視、リトライ処理がその意味を理解できません。トラフィックのブロックには 403 か 429 を、不正な入力には 400 か 422 を選べば、ツールも人も正しく対応できます。

クライアントエラー (4xx)

4xx はクライアントエラーです。リクエスト自体が誤っている、認証されていない、または存在しないものを指しています。同じリクエストを再試行しても解決しません。

レスポンスでの表示

HTTP/1.1 418 I’m a teapot

返し方

Node.js / Expressres.status(418).end()
Python / Flaskreturn '', 418
nginxreturn 418;

確認方法

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

HTTP ステータスコードを開く