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 はアプリケーションのクラッシュ、502 と 504 はプロキシがアップストリームの異常または無応答を報告するもの、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 と共に配信されればダウンタイム中のランキングを保護します。