HTTPステータスコード確認
HTTPレスポンスコードの意味と詳細を検索
Continue
これまでのところ正常。リクエストを継続してよい。
Switching Protocols
サーバはリクエストに応じてプロトコルを切り替える。
OK
リクエスト成功。
Created
リクエスト成功し、新しいリソースが作成された。
No Content
リクエスト成功だが、返すコンテンツがない。
Moved Permanently
恒久的に移動した。新しいURLを使用すべき。
Found
一時的に移動した。
Not Modified
更新されていない。キャッシュを使用できる。
Bad Request
リクエスト構文が無効。
Unauthorized
認証が必要。
Forbidden
アクセス権がない。
Not Found
リソースが見つからない。
Method Not Allowed
許可されていないメソッド。
Request Timeout
リクエストタイムアウト。
Too Many Requests
リクエスト過多。レート制限。
Internal Server Error
サーバ内部エラー。
Bad Gateway
不正なゲートウェイ。
Service Unavailable
サービス利用不可。メンテナンス中など。
Gateway Timeout
ゲートウェイタイムアウト。
HTTPステータスコード確認ツールの使い方
HTTP レスポンスのステータスコードを、コード番号・英語名・日本語の説明文から検索して意味を確認できるリファレンスです。1xx〜5xx のうち Web 制作や API 開発で遭遇しやすい主要19件をページ内に静的に収録しており、入力のたびにその場で絞り込まれます。URL に実際にリクエストを送ってステータスを取得する機能はなく、このページから外部への通信は行いません。
検索
検索欄にコード番号の一部(「40」「5」)、英語名(「timeout」など。大文字小文字は区別しません)、または日本語の説明文に含まれる語(「キャッシュ」「ゲートウェイ」)を入力します。空欄のときは19件すべてが表示されます。
詳細確認
各カードにコード番号・英語名・意味が表示され、右側のラベルで分類(Informational / Success / Redirection / Client Error / Server Error)が分かります。分類は色でも区別され、3xx は青、4xx はオレンジ、5xx は赤です。
見つからない場合
収録外のコード(418 や 451 など)を検索すると「見つかりませんでした」と表示されます。その場合は下の IANA レジストリや MDN へのリンクから確認してください。
301 / 302 / 307 / 308 の違い:メソッドの保持とキャッシュ
リダイレクトを表す 3xx のうち、実務で選択に迷いやすい4つを比較します。「恒久か一時か」と「リダイレクト後にリクエストメソッドと本文を保つか」の2軸で区別すると整理できます。このツールに収録しているのは 301 と 302 のみです。
| コード | 移動の性質 | メソッドの扱い | 既定でキャッシュ可能か | 本ツール |
|---|---|---|---|---|
| 301 Moved Permanently | 恒久的 | ブラウザが POST を GET に変えることが許容されている | 可能(明示的な指定が無くても保存されうる) | 収録 |
| 302 Found | 一時的 | 同上(POST が GET に変わることがある) | Cache-Control や Expires で明示した場合のみ | 収録 |
| 307 Temporary Redirect | 一時的 | 変更してはならない(メソッドと本文を保持して再送) | 明示した場合のみ | 未収録 |
| 308 Permanent Redirect | 恒久的 | 変更してはならない(メソッドと本文を保持して再送) | 可能 | 未収録 |
HTTP/1.0 の時代に、302 を受け取ったブラウザが POST を GET に書き換えて転送先へアクセスする実装が広まりました。 現在の仕様(RFC 9110)はその歴史的な挙動を 301・302 について追認したうえで、メソッドを変えてはいけないリダイレクトとして 307(RFC 2616 で追加)と 308(RFC 7538 で追加)を定義しています。 フォーム送信や API の POST をリダイレクトさせたい場合は 307 または 308、通常のページ移転で GET しか扱わないなら 301 で問題が起きにくい、というのが使い分けの目安です。
キャッシュについては、RFC 9110 が「既定でキャッシュ可能(heuristically cacheable)」と定めるコードに 301 と 308 が含まれ、302 と 307 は含まれません。 恒久リダイレクトを後から取り消したい場合、すでにブラウザに保存された転送先は該当ページを再取得するまで残るため、設定変更を試す段階では 302 や 307 から始めると戻しやすくなります。
一次情報:RFC 9110 Section 15.4: Redirection 3xx、MDN: HTTP のリダイレクト
4xx と 5xx の切り分け早見表と、本ツール未収録の主なコード
エラー系のコードは「どちら側に原因があることが多いか」と「最初に確認するもの」を対応づけておくと、調査の入口を素早く決められます。収録19件のうちエラー系11件についてまとめました。
| コード | 主に疑う場所 | 最初に確認するもの |
|---|---|---|
| 400 | リクエストの形式 | 本文の JSON 構文、Content-Type、必須パラメータの有無 |
| 401 | 資格情報 | Authorization ヘッダー、トークンの期限、応答の WWW-Authenticate |
| 403 | サーバー側の許可設定 | アクセス制御リスト、IP 制限、ファイルのパーミッション |
| 404 | URL | パスの綴り、ルーティング設定、リソースの削除・移動 |
| 405 | HTTP メソッド | GET と POST の取り違え、応答の Allow ヘッダー |
| 408 | 接続と送信の遅さ | 大きな本文の送信時間、サーバーの受信タイムアウト値 |
| 429 | 送信頻度 | Retry-After ヘッダー、API の上限値、再試行の間隔 |
| 500 | サーバーのアプリケーション | アプリケーションログの例外、直近のデプロイ内容 |
| 502 | 中継サーバーと上流の接続 | 上流プロセスの死活、待ち受けポート、TLS 設定 |
| 503 | サーバーの容量・状態 | メンテナンスモード、過負荷、Retry-After ヘッダー |
| 504 | 上流の処理時間 | 中継サーバーのタイムアウト値、遅いクエリや外部 API 呼び出し |
このツールに収録していないコードのうち、比較的よく目にするものを挙げておきます。 206 Partial Content(Range リクエストへの部分応答。動画の途中再生など)、 303 See Other(POST 後に結果ページへ GET で誘導する)、 307 / 308(上の比較表を参照)、 410 Gone(404 と異なり、恒久的に削除されたと明示する)、 415 Unsupported Media Type(Content-Type が受け付けられない)、 422 Unprocessable Content(構文は正しいが内容の検証に失敗。RFC 9110 で正式に HTTP の仕様に取り込まれた)、 451 Unavailable For Legal Reasons(法的理由による提供不可。RFC 7725)、 501 Not Implemented(サーバーがそのメソッドに対応していない)、 505 HTTP Version Not Supported。
一次情報:IANA: Hypertext Transfer Protocol (HTTP) Status Code Registry(登録済みコードの正式な一覧)、RFC 9110 Section 15: Status Codes、MDN: HTTP レスポンスステータスコード
実際の使用例
「Timeout」で検索する
英語名の照合は大文字小文字を区別しないため、「timeout」でも「TIMEOUT」でも同じ結果になります。クライアント側とゲートウェイ側の2つのタイムアウトが並んで表示されます。
INPUT
Timeout
OUTPUT
408 Request Timeout(Client Error) 504 Gateway Timeout(Server Error) → 2件
「40」で 4xx の前半をまとめて表示する
コード番号は文字列としての部分一致なので、「40」で始まる6件が番号順に並びます。429 は「40」を含まないため表示されません。
INPUT
40
OUTPUT
400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 405 Method Not Allowed 408 Request Timeout → 6件
収録外のコードを検索する
418 は RFC 2324(エイプリルフールの RFC)に由来するコードで、このツールには収録していません。番号・英語名・説明文のいずれにも一致しないため、結果は0件になります。
INPUT
418
OUTPUT
見つかりませんでした → 0件(本ツールは主要19件のみ収録)
よくある質問
どのステータスコードが収録されていますか?
100・101・200・201・204・301・302・304・400・401・403・404・405・408・429・500・502・503・504 の19件です。RFC 9110 などで定義されている標準コードのうち、Web サイトの運用や API 開発で目にする頻度が高いものに絞っています。307・308・410・422・451・505 などは収録していません。網羅的な一覧が必要な場合は、下の IANA HTTP Status Code Registry を参照してください。
検索はどのように照合されますか?
次の3条件のいずれかに当てはまるものが表示されます。(1) コード番号を文字列にしたものに入力を含む、(2) 英語名を小文字にしたものに入力を小文字にしたものを含む、(3) 日本語の説明文に入力をそのまま含む。たとえば「3」で 301・302・304・403・503 が並ぶのは、コード番号のどこかに 3 の文字を含むためです。日本語の説明文は完全な部分一致なので、「サーバー」と入力しても説明文の「サーバ」には一致しません。
401 Unauthorized と 403 Forbidden はどう違いますか?
401 は「認証情報が無い、または無効」という状態で、サーバーは WWW-Authenticate ヘッダーで認証方法を示し、正しい資格情報を付けて再送すれば通る可能性があります。名前は Unauthorized ですが、実態は「未認証」です。403 は「認証の有無にかかわらずこの操作を許可しない」という応答で、同じ資格情報で再送しても結果は変わりません。ログイン切れなら 401、権限不足なら 403 と覚えると切り分けやすくなります。
301 と 302 のどちらを使うべきですか?
URL の変更が恒久的(サイト移転、http から https への統一、末尾スラッシュの正規化)なら 301、一時的な振り分け(メンテナンスページ、期間限定の誘導)なら 302 です。301 は既定でキャッシュ可能なため、一度返すとブラウザが記憶し、元の URL に戻しても以前の転送先へ飛び続けることがあります。また 301・302 では POST が GET に変えられることがあるので、メソッドと本文を保持したい場合は 307・308 を使います。詳細は下の比較表にまとめています。
502 Bad Gateway と 504 Gateway Timeout の違いは何ですか?
どちらもリバースプロキシ・ロードバランサー・CDN などの中継サーバーが、その先の上流サーバーとの間で問題を検出したときに返すコードです。502 は上流から不正な応答を受け取った、または接続できなかった場合(上流のプロセスが落ちている、ポートが違うなど)、504 は上流への接続はできたが制限時間内に応答が返らなかった場合です。502 なら上流の死活と設定、504 なら処理時間とタイムアウト値を確認するのが切り分けの出発点になります。
429 Too Many Requests が返ったらどうすればよいですか?
一定時間内のリクエスト数が上限を超えたという応答です(RFC 6585 で定義)。応答に Retry-After ヘッダーがあれば、そこに書かれた秒数または日時まで待ってから再送します。ヘッダーが無い場合は、再試行の間隔を回数ごとに倍にしていく指数バックオフで送り直すのが一般的な実装です。待たずに連打すると上限の解除がさらに遅れることがあります。
URL を入力して、実際に返ってくるステータスを調べられますか?
できません。このページは収録済みの一覧をページ内で検索するだけで、どこにもリクエストを送りません。実際のステータスを確認するには、ブラウザの開発者ツールの Network タブでレスポンスの Status 列を見るか、ターミナルで curl -I に URL を渡してヘッダーだけを取得する方法があります。取得したコードの意味を調べる段階でこのページを使ってください。
役立つTips
200 でも失敗している場合がある
API によっては、処理に失敗しても HTTP ステータスは 200 のまま、本文の JSON に error フィールドを入れて返す実装があります。ステータスコードだけで成否を判断せず、本文の内容も確認してください。
304 はキャッシュが機能している印
開発者ツールで画像や CSS に 304 Not Modified が並ぶのは、If-None-Match や If-Modified-Since を付けた条件付きリクエストにサーバーが「変更なし」と答えている状態です。エラーではなく、転送量を節約できている正常な動作です。
まず 4xx か 5xx かで疑う場所を分ける
4xx はリクエスト側(URL、メソッド、認証ヘッダー、本文の形式)を、5xx はサーバー側のログや中継サーバーの設定を最初に確認します。ただし 408 や 429 はクライアントのコードに分類されていても、サーバー側のタイムアウト値や上限設定が原因になることがあります。
部分一致を使って似たコードを並べて比べる
「40」と入力すると 400〜408 の6件、「timeout」と入力すると 408 と 504 が並びます。似た名前や隣り合う番号のコードを比較したいときは、番号を最後まで打たずに途中で止めると便利です。