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 / Express | res.status(418).end() |
|---|---|
| Python / Flask | return '', 418 |
| nginx | return 418; |
確認方法
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/