💻 開発者ツール

HTTPステータス一覧

HTTPステータスコード(1xx〜5xx)の意味を一覧表示し、番号やキーワードで絞り込めます。開発・デバッグ時の参照に。検索はブラウザ内だけで完結します。

例(クリックで絞り込み)

番号・日本語名で絞り込む手順

検索欄に番号かキーワードを入力すると、一致する行だけが残ります。番号の判定は前方一致ではなく部分一致なので、40 と入れると 400・401・403・404・408・409 の6件、50 なら 500・502・503・504 の4件が並びます。例チップを押すとその番号で即フィルタし、「すべて表示」で解除します。入力はブラウザ内だけで処理され、外部へ送信されません。

この日本語版が表示するのはコード番号+日本語の短い名称(例: 404 — 未検出)で、キーワード検索の対象もその日本語名です。リクエストと入れれば「400 — 不正リクエスト」と「429 — リクエスト過多」の2件に絞れます。Not Found のような英語の正式名で引きたい場合は英語版のほうが目的に合います。

1xx〜5xx の分類と、最初に見るべき場所

百の位だけで「どこを疑うか」がほぼ決まります。個別の番号を覚える前に、この5分類と一次情報の置き場所を押さえたほうが原因の切り分けが速く済みます。

分類意味まず確認する場所
1xx情報(処理継続中の中間応答)アプリのログにはほぼ現れない。大きなボディを送る前の Expect: 100-continue のやり取り程度
2xx成功HTTP層は成功している。それでも動かないならレスポンスボディ側のエラー表現を見る
3xxリダイレクト・キャッシュLocation ヘッダの行き先と、恒久(301)か一時(302)か
4xxクライアントエラー送った側を疑う。URL・メソッド・認証ヘッダ・ボディの形式
5xxサーバーエラー送った側では直せない。サーバーのログと、間に立つプロキシやゲートウェイ

収録している19コードと典型的な原因

この一覧は実務で遭遇しやすい19件に絞っています。表示名は検索対象と同じ日本語なので、気になる語をそのまま検索欄に貼り付けても引けます。

コード表示名典型的な原因と次の一手
100続行クライアントが Expect: 100-continue を付けたときの中間応答。ボディを送ってよいという合図
200成功正常。「200なのに失敗している」ときはボディ内のエラーフィールドを確認する
201作成POST でリソースが作られた。作成先は Location ヘッダに入る
204内容なし成功したがボディが無い。DELETE や設定更新で多く、JSON として解析しようとすると失敗する
301恒久的移動恒久移転。ブラウザが強くキャッシュするため、誤設定を後から巻き戻しにくい
302一時移動一時的な移動。元のURLが正のまま残る
304未変更条件付きリクエスト(If-None-Match / If-Modified-Since)でキャッシュが有効だった。ボディが空なのが正常
400不正リクエスト構文レベルで解釈できない。壊れた JSON、必須パラメータの欠落、不正なヘッダ
401認証必要認証情報が無い・期限切れ・無効。WWW-Authenticate ヘッダで要求方式を確認
403禁止認証は通っているが権限やIP制限で拒否。再ログインでは解決しない
404未検出パスの綴り、末尾スラッシュ、ルーティング定義。存在を隠す目的で403の代わりに返す設計もある
408タイムアウトクライアントがリクエストを送り切る前に待ち時間が尽きた
409競合現在の状態と矛盾する要求。重複登録や楽観ロックの衝突
422処理不能構文は正しいが内容の検証に失敗。400と役割を分ける API で使われる
429リクエスト過多レート制限に到達。Retry-After を見て指数バックオフで再送する
500サーバーエラー捕まえ損ねた例外。一次情報はサーバー側のスタックトレース
502不正ゲートウェイプロキシが上流から不正な応答を受けた。上流の停止やプロトコル不一致
503利用不可過負荷やメンテナンスで一時的に応答不可。Retry-After が付くことがある
504ゲートウェイタイムアウト上流の応答が制限時間内に返らなかった。処理が重いのか詰まっているのかを切り分ける

間違えやすい組み合わせ

  • 400 と 422:400は「読めない」、422は「読めたが内容が妥当でない」。バリデーションエラーを400で返す実装も多いので、API を利用する側は両方をハンドリングしておくと安全です。
  • 302 と 307・308:301と302はリダイレクト時に POST を GET に変えてしまう実装が歴史的に存在します。メソッドとボディを保ったまま転送したいときは 307 Temporary Redirect / 308 Permanent Redirect を使います(この2つは一覧には収録していません)。
  • 500 と 502・504:500はアプリ自身のエラー、502と504は「間に立つプロキシから見た上流の異常」です。502/504が出ているときにアプリのログだけ見ても手掛かりが無いことがあり、ロードバランサやリバースプロキシ側のログが必要になります。
  • 204 と 200+空ボディ:204はボディが存在しないことが仕様なので、クライアントが常に JSON を解析する実装だと 204 で例外になります。ステータスを見てから解析するのが安全です。

この一覧で扱わない範囲

収録は19件のみで、410 Gone や 307・308、451 Unavailable For Legal Reasons などは含みません。また Cloudflare の 520〜527 や nginx の 499 のように、特定の実装だけが返す番号も対象外です。番号の正式な定義と要件は RFC 9110(HTTP Semantics)が一次情報で、追加のコードもそれぞれ個別のRFCで定義されています。挙動が仕様と食い違うときは、まず一次情報の該当節を確認してください。

よくある質問

入力データはサーバーに送信されますか?
いいえ。検索・絞り込みはすべてブラウザ内で完結し、外部に送信・保存されません。
301と302の違いは?
301 Moved Permanentlyは恒久的な移動で、ブラウザや検索エンジンは新URLにリンク評価を移し、結果をキャッシュします。302 Foundは一時的な移動で、元のURLが正としてキャッシュされません。SEO目的の恒久移転は301、メンテナンス中の暫定リダイレクトなどは302が適切です。
401と403の違いは?
401 Unauthorizedは「認証が必要・認証に失敗した」状態で、正しく認証すればアクセスできる可能性があります。403 Forbiddenは「認証済みかどうかに関わらずアクセスが禁止」されている状態で、再ログインしても解決しません。権限不足やIP制限などが典型です。
429 Too Many Requestsが返るのはなぜ?
単位時間あたりのリクエスト数が上限(レート制限)を超えたためです。サーバーは Retry-After ヘッダで再試行までの待ち時間を示すことがあります。クライアント側は指数バックオフで間隔を空けて再送するのが定石です。
404と410はどう使い分けますか?
404 Not Found は理由を問わず「見つからない」ことだけを表し、そのURLが将来復活する可能性も否定しません。410 Gone は「かつて存在したが恒久的に削除された」ことを明示するので、キャッシュやクローラに再取得しても無駄だと伝えられます。クライアントから見ればどちらも取得失敗ですが、意図の伝わり方が違います。なお410はこの一覧には収録していません。
この一覧に載っていないコードもありますか?
はい。収録しているのは実務で遭遇しやすい19件だけで、410 Gone、307 Temporary Redirect、308 Permanent Redirect、451 Unavailable For Legal Reasons などは含みません。Cloudflare の 520〜527 や nginx の 499 のように特定の実装だけが返す番号も対象外です。仕様上の正式な定義は RFC 9110 を参照してください。