HTTP ステータスコード

HTTP レスポンスステータスコードの完全リファレンスです。各コードの意味、サーバーが送信するタイミング、そしてどう対応すべきかを、リクエストのデバッグ、API のドキュメント作成、サーバーログのレビューに役立つ形でまとめています。

ジャンプリンクを使ってレスポンスクラス間を移動するか、よく使われるコードの詳細ガイドを開いてください。

HTTP レスポンスコード表

Code 名前 意味
1xx 情報
100 Continue サーバーはリクエストヘッダーを受信し、クライアントはリクエストボディを送信すべきです。
101 Switching Protocols サーバーは Upgrade ヘッダーで要求されたプロトコルへの切り替えに同意します。
102 Processing サーバーはリクエスト全体を受理しましたが、まだ完了していません(WebDAV)。
103 Early Hints 最終レスポンスの前に送信される予備的なヘッダーで、主に Link のプリロードヒントです。
2xx 成功
200 OK リクエストは成功し、レスポンスには要求された表現が含まれます。
201 Created リクエストは成功し、新しいリソースが作成されました。通常その場所は Location に示されます。
202 Accepted リクエストは非同期処理のために受理されましたが、まだ完了していません。
203 Non-Authoritative Information レスポンスは途中で変換プロキシによって変更されました。
204 No Content リクエストは成功し、意図的にレスポンスボディはありません。
205 リセット Content リクエストは成功し、クライアントはドキュメントの表示またはフォームをリセットすべきです。
206 Partial Content レスポンスは Range ヘッダーで要求されたバイト範囲のみを返します。
3xx リダイレクト
300 Multiple Choices 複数の表現が存在し、クライアントはそのいずれかを選択すべきです。
301 Moved Permanently リソースには恒久的な新しい URL があり、リンクを更新すべきです。
302 Found リソースは一時的に別の URL に存在します。元の URL を引き続き使用してください。
303 See Other 結果は別の URL で取得可能であり、GET で取得すべきです。
304 Not Modified キャッシュされたコピーはまだ有効なため、ボディは再送信されません。
307 Temporary Redirect 元の HTTP メソッドとボディを維持しなければならない一時的リダイレクトです。
308 Permanent Redirect 元の HTTP メソッドとボディを維持しなければならない恒久的リダイレクトです。
4xx クライアントエラー
400 Bad Request リクエストが不正な形式のため、サーバーは処理できません。
401 Unauthorized 有効な認証情報が必要ですが、欠落しているか誤っています。
402 Payment Required 予約済みのステータスで、実際には一部の API が課金上限に使用しています。
403 Forbidden サーバーはリクエストを理解しましたが、その実行を許可しません。
404 Not Found 要求された URL にはリソースが存在しません。
405 Method Not Allowed URL は存在しますが、この HTTP メソッドをサポートしていません。
406 Not Acceptable Accept のネゴシエーションヘッダーに一致する表現がありません。
407 Proxy Authentication Required クライアントはまずプロキシで認証する必要があります。
408 Request Timeout リクエストの到着に時間がかかりすぎたため、サーバーは接続を閉じました。
409 Conflict リクエストがリソースの現在の状態と競合しています。例: 編集の衝突。
410 Gone リソースは意図的に削除され、二度と戻りません。
411 Length Required リクエストには Content-Length ヘッダーを含める必要があります。
412 Precondition Failed If-Match などの条件付きヘッダーの評価が false になりました。
413 Content Too Large リクエストボディがサーバーの許容するサイズを超えています。
414 URI Too Long リクエストの URL がサーバーの解析可能な長さを超えています。
415 Unsupported Media Type このリソースに対して、リクエストボディの形式はサポートされていません。
416 Range Not Satisfiable 要求されたバイト範囲がリソースのサイズの範囲外です。
417 Expectation Failed Expect リクエストヘッダーの要求を満たせませんでした。
418 I'm a teapot RFC 2324 に由来するエイプリルフールのステータスです。一部の API はイースターエッグとして使用しています。
421 Misdirected Request リクエストが、この宛先に対するレスポンスを生成できないサーバーに到達しました。
422 Unprocessable Content リクエストの形式は正しいものの、意味的に無効です。REST のバリデーションでよく見られます。
425 Too Early サーバーは、リプレイされる可能性のあるリクエスト(TLS のアーリーデータ)の処理を拒否します。
426 Upgrade Required クライアントは Upgrade に記載された別のプロトコルに切り替える必要があります。
428 Precondition Required サーバーは、更新の消失を防ぐために条件付きリクエストを要求します。
429 Too Many Requests クライアントがレート制限を超過しました。Retry-After が再試行の目安を示します。
431 Request Header Fields Too Large ヘッダー(多くの場合クッキー)がサーバーのサイズ制限を超えています。
451 Unavailable For Legal Reasons 裁判所命令などの法的理由によりアクセスがブロックされています。
5xx サーバーエラー
500 Internal Server Error サーバーはリクエスト処理中に予期しないエラーに遭遇しました。
501 Not Implemented サーバーはこのリクエストメソッドを認識またはサポートしていません。
502 Bad Gateway ゲートウェイまたはプロキシがアップストリームサーバーから無効なレスポンスを受信しました。
503 Service Unavailable サーバーは過負荷またはメンテナンスのため、一時的に応答できません。
504 Gateway Timeout ゲートウェイまたはプロキシがアップストリームサーバーの応答を待つのをあきらめました。
505 HTTP Version Not Supported サーバーは使用されている HTTP プロトコルバージョンをサポートしていません。
506 Variant Also Negotiates サーバー側のコンテンツネゴシエーションの設定誤りです。
507 Insufficient Storage サーバーはリクエストを完了するために必要な保存領域を確保できません(WebDAV)。
508 Loop Detected サーバーは処理中に無限ループを検出しました(WebDAV)。
510 Not Extended リクエストには、提供されなかった追加の拡張が必要です。
511 Network Authentication Required ネットワーク(例: キャプティブポータル)がまず認証を要求しています。

1xx 情報

情報レスポンスは、リクエストが受信され、クライアントが続行できることを確認します。これらは暫定的なもので、必ず最終的なステータスが続きます。実際によく遭遇するのは 103 Early Hints で、これは完全なレスポンスが準備できる前にサーバーがプリロードのヒントを送信できるようにします。

2xx 成功

成功レスポンスは、リクエストが理解され受け入れられたことを意味します。200 OK は結果をボディに含み、201 Created は新しいリソースの作成を通知し、204 No Content は意図的に何も返さない形で成功を確認します。

3xx リダイレクト

リダイレクトレスポンスはクライアントを別の場所に誘導します。重要な違いは恒久性です — 301/308 は恒久的、302/307 は一時的 — さらに HTTP メソッドを維持する必要があるか(307/308)、GET に変わってもよいか(301/302)という違いもあります。304 Not Modified はブラウザキャッシュを支える特別なケースです。

4xx クライアントエラー

クライアントエラーは、リクエスト自体が拒否されたことを意味します。日常的によく見るのは、400 の不正なリクエスト、401 の認証が必要、403 のアクセス拒否、404 の URL が存在しない、429 のレート制限超過です。

5xx サーバーエラー

サーバーエラーは、リクエスト自体は正しかった可能性があるにもかかわらず、サーバー側で処理に失敗したことを意味します。500 はアプリケーションのクラッシュ、502504 はプロキシがアップストリームの異常または無応答を報告するもの、503 は意図的な一時的利用不可を表します。

ステータスコードの読み方

1 桁目はクラスを表します: 1xx 情報、2xx 成功、3xx リダイレクト、4xx クライアントエラー、5xx サーバーエラー。未知のコードに遭遇したクライアントは、そのクラスの x00 コードとして扱っても安全にフォールバックできます — これが新しいコードが後方互換性を保つ仕組みです。デバッグの際は、コードと合わせてレスポンスヘッダーも必ず確認してください。Location はリダイレクトの説明、Allow は 405 の説明、Retry-After は 429 と 503 の説明になります。

200 OK                    — page served normally
301 Moved Permanently     — URL changed for good, follow Location
304 Not Modified          — your cached copy is still valid
404 Not Found             — nothing exists at this URL
429 Too Many Requests     — rate limit hit, wait Retry-After seconds
503 Service Unavailable   — temporary downtime or maintenance

よくある質問

HTTP 404 とは?

HTTP 404 は、指定された URL にリクエストされたリソースが見つからなかったことを意味します。原因、修正方法、SEO への影響については詳細な 404 ガイドをご覧ください。

301 と 302 の違いは?

301 リダイレクトは恒久的なもので、リンクや検索エンジンは新しい URL に更新すべきです。302 は一時的な移動を示し、元の URL が正規のままとなります。

503 は何を意味しますか?

HTTP 503 は、多くの場合メンテナンスや過負荷により、サービスが一時的に利用できないことを意味し、クライアントは少し時間を置いてから再試行すべきです。

401 と 403 の違いは何ですか?

401 はサーバーが有効な認証情報を必要としていることを意味します。403 はあなたが誰であるかを把握したうえで、それでもアクセスを拒否していることを意味します — 再度ログインしても解決しません。

502 と 504 の違いは何ですか?

どちらもアップストリームサーバーと通信するプロキシに起因します。502 はアップストリームが無効なレスポンスを返したことを、504 はタイムアウトまでに一切応答がなかったことを意味します。

SEO にとって最も重要なステータスコードはどれですか?

200 はインデックス可能なページを示し、301/308 は恒久的な移動でランキングを引き継ぎ、404/410 は失効した URL を削除し、503 は Retry-After と共に配信されればダウンタイム中のランキングを保護します。