HTTPステータスコード早見表|全コード一覧と意味・原因・対処法
HTTPレスポンスのステータスコードを1xx(情報)・2xx(成功)・3xx(リダイレクト)・4xx(クライアントエラー)・5xx(サーバーエラー)の5カテゴリで網羅。Web開発・API設計・サーバー運用・SEOで頻出するコード35種について、意味・主な発生原因・対処法を一覧表示します。
📌 よく使う HTTPステータスコード TOP12
| コード | 名称 | 意味 | カテゴリ |
|---|---|---|---|
| 200 | OK | 正常 | 2xx 成功 |
| 201 | Created | 作成完了 | 2xx 成功 |
| 204 | No Content | コンテンツなし | 2xx 成功 |
| 301 | Moved Permanently | 恒久的リダイレクト | 3xx |
| 302 | Found | 一時的リダイレクト | 3xx |
| 304 | Not Modified | 未更新(キャッシュ) | 3xx |
| 400 | Bad Request | 不正なリクエスト | 4xx |
| 401 | Unauthorized | 未認証 | 4xx |
| 403 | Forbidden | アクセス禁止 | 4xx |
| 404 | Not Found | 未検出 | 4xx |
| 500 | Internal Server Error | サーバー内部エラー | 5xx |
| 503 | Service Unavailable | サービス停止中 | 5xx |
※ オレンジ網掛けは特に頻出。下記の検索ツールで番号入力すれば詳細(意味・原因・対処法)を確認できます。
検索結果
上の欄にHTTPステータスコード番号(100〜599)を入力してください。
このページについて
HTTPステータスコードはサーバーがクライアントに返す3桁の数字で、リクエストの結果を示します。本ページではRFC 9110(HTTPセマンティクス)・RFC 7230に基づき、Web開発・API設計・サーバー運用・SEO対応で頻出する35コードを網羅しています。
フロントエンドエンジニア・バックエンドエンジニア・SREエンジニア・SEO担当者・Webディレクターまで、「APIから返ってきた422って何?」「301と302どちらを使うべき?」「500が出たがどう調査する?」といった現場で頻発する疑問に即答できる構成にしました。
HTTPステータスコード 完全一覧
各コードのカテゴリ・意味・主な発生原因・対処法を網羅。検索ツールで番号入力すれば該当行をハイライトできます。
| コード | 名称 | カテゴリ | 意味 | 主な原因 | 対処法 |
|---|---|---|---|---|---|
| 100 | Continue 継続 | 1xx 情報 | リクエスト継続OK。クライアントは送信を続けてよい | Expect:100-continue ヘッダ送信時のサーバー応答 | 通常はクライアントが自動処理。手動対応不要 |
| 101 | Switching Protocols プロトコル切替 | 1xx 情報 | プロトコル切替の承認(例:HTTP→WebSocket) | Upgrade ヘッダで別プロトコルへの切替要求 | WebSocket接続成立時に発生。エラーではない |
| 200 | OK 正常 | 2xx 成功 | リクエスト成功。レスポンスボディに結果 | 通常の成功応答 | 対応不要。正常動作 |
| 201 | Created 作成完了 | 2xx 成功 | リソース作成成功(主にPOST/PUT) | 新規リソースの作成API成功時 | Location ヘッダで新規URLを取得して次の処理へ |
| 202 | Accepted 受理 | 2xx 成功 | 受理したが処理は未完(非同期処理) | バッチ処理・キューイング応答 | ポーリングまたはWebhookで完了通知を待つ |
| 204 | No Content コンテンツなし | 2xx 成功 | 成功したがレスポンスボディなし(DELETE/PUT等) | 削除成功・更新成功でデータ返却不要時 | 対応不要。ステータスのみ確認 |
| 206 | Partial Content 部分コンテンツ | 2xx 成功 | 部分的応答(Rangeリクエスト時) | 動画・大容量ファイルのストリーミング | Content-Range ヘッダでデータ範囲を確認 |
| 301 | Moved Permanently 恒久的リダイレクト | 3xx リダイレクト | URLが恒久的に移動。SEOではリンク評価を引き継ぐ | サイト引越し・URL正規化・http→https | Location ヘッダの新URLへ。ブックマーク更新推奨 |
| 302 | Found 一時的リダイレクト | 3xx リダイレクト | URLが一時的に移動。SEOではリンク評価を引き継がない | ログイン後の遷移・メンテナンス・A/Bテスト | Location ヘッダの一時URLへ。元URLは残る |
| 303 | See Other 他を参照 | 3xx リダイレクト | POST後にGETで別URLを取得すべき(PRGパターン) | フォーム送信後のリダイレクト | Location ヘッダのURLへGETで再要求 |
| 304 | Not Modified 未更新 | 3xx リダイレクト | キャッシュが有効。再ダウンロード不要 | If-Modified-Since / If-None-Match の条件付きGET | ブラウザがキャッシュを使用。エラーではない |
| 307 | Temporary Redirect 一時的リダイレクト(メソッド維持) | 3xx リダイレクト | 302と類似だがHTTPメソッドを維持 | POSTのままリダイレクトしたい場合 | 302の代わりにメソッド保持が必要なケースで使用 |
| 308 | Permanent Redirect 恒久的リダイレクト(メソッド維持) | 3xx リダイレクト | 301と類似だがHTTPメソッドを維持 | POSTのまま恒久リダイレクト | 301の代わりにメソッド保持が必要なケースで使用 |
| 400 | Bad Request 不正なリクエスト | 4xx クライアントエラー | リクエストの構文・パラメータが不正 | JSON構文エラー・必須パラメータ欠落・型不一致 | リクエストボディ・ヘッダ・URLパラメータを再確認 |
| 401 | Unauthorized 未認証 | 4xx クライアントエラー | 認証情報がない・無効(認証必須) | Authorizationヘッダ欠落・トークン期限切れ・APIキー誤り | 正しい認証情報を付与。トークン再発行・APIキー確認 |
| 403 | Forbidden アクセス禁止 | 4xx クライアントエラー | 認証は通ったが権限不足 | 他人のリソース・管理者権限不足・IPブロック・CORS設定 | サーバー側の権限設定・ロール・ACLを確認 |
| 404 | Not Found 未検出 | 4xx クライアントエラー | リソースが存在しない | URL誤り・削除済み・存在しないAPI エンドポイント | URL確認・ルーティング設定確認・APIドキュメント参照 |
| 405 | Method Not Allowed メソッド非対応 | 4xx クライアントエラー | HTTPメソッドが許可されていない(例:GETしか受けない所にPOST) | GET専用エンドポイントにPOST等 | Allow ヘッダで対応メソッドを確認 |
| 408 | Request Timeout リクエストタイムアウト | 4xx クライアントエラー | 規定時間内にリクエスト完了せず | ネットワーク遅延・大容量アップロード | リトライ・接続安定化・タイムアウト値見直し |
| 409 | Conflict 競合 | 4xx クライアントエラー | リソースの状態が競合(楽観的ロック等) | 同一リソースの同時更新・既に存在するレコード作成試行 | 最新状態を取得して再試行 |
| 410 | Gone 削除済み | 4xx クライアントエラー | リソースが恒久的に削除済み(404と違い意図的削除) | 古いAPI廃止・コンテンツ削除 | 代替URL・新APIへ移行 |
| 413 | Payload Too Large ペイロード過大 | 4xx クライアントエラー | リクエストボディが大きすぎる | ファイルアップロードの上限超過 | ファイル分割・サーバー側 client_max_body_size 調整 |
| 414 | URI Too Long URI過長 | 4xx クライアントエラー | URLが長すぎる | GETでクエリパラメータを大量に送信 | POSTで本文に送る方式に変更 |
| 415 | Unsupported Media Type 未対応形式 | 4xx クライアントエラー | Content-Typeが未対応 | サーバーが受け付けない形式(例:XMLしか受けないのにJSON送信) | Content-Typeヘッダを正しく設定 |
| 418 | I'm a teapot ティーポットです | 4xx クライアントエラー | ジョークコード(エイプリルフールRFC 2324由来) | 実装ジョーク・特殊用途 | 通常は使用しない |
| 422 | Unprocessable Entity 処理不能 | 4xx クライアントエラー | 構文は正しいがバリデーション失敗 | メアド形式違反・必須項目空・型違反等 | バリデーションエラー詳細を確認して入力修正 |
| 429 | Too Many Requests リクエスト過多 | 4xx クライアントエラー | レート制限超過 | 短時間に大量アクセス・APIクォータ消費 | Retry-Afterヘッダの秒数待機・指数バックオフ・APIキーアップグレード |
| 451 | Unavailable For Legal Reasons 法的理由で利用不可 | 4xx クライアントエラー | 法律上の理由で提供できない | 地域制限・著作権・GDPR・国の検閲等 | VPN・正当な手続きでの取得・代替コンテンツ |
| 500 | Internal Server Error サーバー内部エラー | 5xx サーバーエラー | サーバー内で予期しないエラー | コードバグ・DB接続失敗・例外未捕捉 | サーバーログ確認・エラートラッキング(Sentry等)で原因特定 |
| 501 | Not Implemented 未実装 | 5xx サーバーエラー | リクエストされた機能が未実装 | メソッド未対応・API未完成 | 対応メソッド・APIバージョンを確認 |
| 502 | Bad Gateway 不正なゲートウェイ | 5xx サーバーエラー | 上流サーバーから無効なレスポンス | リバースプロキシ越しのバックエンド停止・タイムアウト | バックエンドサーバー稼働確認・nginx/Apache設定見直し |
| 503 | Service Unavailable サービス利用不可 | 5xx サーバーエラー | サーバー過負荷・メンテナンス中 | サーバーダウン・メンテ・DDoS | Retry-Afterヘッダの時間待機。継続的な場合は運用に連絡 |
| 504 | Gateway Timeout ゲートウェイタイムアウト | 5xx サーバーエラー | 上流サーバーの応答が時間内に得られず | バックエンド処理が長い・ネットワーク遅延 | 処理時間短縮・タイムアウト値拡大・非同期化 |
| 505 | HTTP Version Not Supported HTTPバージョン未対応 | 5xx サーバーエラー | リクエストのHTTPバージョンが未対応 | HTTP/0.9等の古いバージョン送信 | HTTP/1.1以上を使用 |
| 511 | Network Authentication Required ネットワーク認証必要 | 5xx サーバーエラー | WiFi等のネットワーク認証必要 | 公衆WiFiのキャプティブポータル未通過 | WiFi接続後にブラウザでログインページから認証 |
カテゴリ別の解説
1xx Informational(情報)
リクエストは受理されたが処理継続中であることを示します。ブラウザは通常自動処理するため、開発者が直接扱う機会は少ない。WebSocketプロトコル切替時の101が代表例。
2xx Success(成功)
リクエストが成功したことを示します。200は通常のレスポンス、201はリソース作成成功(POST/PUT)、204はレスポンスボディなしの成功(DELETE等)。RESTful APIではこれらを明確に使い分けるのが定石。
3xx Redirection(リダイレクト)
別のURLへの転送を示します。SEO上は301(恒久)が新URLにリンク評価を引き継ぐのに対し、302(一時)は元URLの評価を保持します。HTTPメソッドを維持したい場合は307/308を使用。
4xx Client Error(クライアントエラー)
リクエスト側に問題があることを示します。400(構文エラー)・401(未認証)・403(権限不足)・404(未検出)が頻出。422(バリデーション失敗)・429(レート制限)・451(法的理由)はAPI設計で重要。
5xx Server Error(サーバーエラー)
サーバー側に問題があることを示します。500(内部エラー)・502(ゲートウェイ不正)・503(過負荷/メンテ)・504(タイムアウト)が頻出。リバースプロキシ(nginx/Apache)とバックエンド(アプリ)のどちらが原因かを切り分けるのが対応の起点。
HTTPステータスコードの分類の意味
HTTPステータスコードは、サーバーがリクエストの処理結果をクライアントに伝える3桁の番号です。先頭の数字で大きく分類され、1xxは情報、2xxは成功、3xxはリダイレクト、4xxはクライアント側の誤り、5xxはサーバー側の誤りを表します。
この分類によって、問題がクライアント側にあるのかサーバー側にあるのかを素早く切り分けられます。301(恒久的)と302(一時的)のリダイレクトの使い分けは、検索エンジンの評価やキャッシュの扱いに影響します。
APIを設計するときは、状況に合った適切なステータスコードを返すことで、呼び出し側が結果を正しく処理できます。コードの意味を共有することが、Webの相互運用性を支えています。
使い方・選び方のポイント
使用場面
Web開発・API設計・サーバー運用でのエラー切り分け、レスポンス確認に使います。
よくある間違い
4xx(クライアント側)と5xx(サーバー側)の責任の取り違え、301と302の使い分け、404と410の混同に注意します。
選び方のコツ
①2xx成功/3xxリダイレクト/4xxクライアント/5xxサーバーで大分類 ②リダイレクトは恒久301・一時302 ③APIは状況に合った適切なコードを返す。
よくある質問
Q1. 301と302の違いは?
A. 301は恒久的リダイレクト、302は一時的リダイレクトです。SEO上では301はリンク評価を新URLに引き継ぐのに対し、302は元URLの評価を保持します。サイト引越しや http→https は301、ログイン後遷移やA/Bテストは302を使います。
Q2. 404と410の違いは?
A. 404はリソースが見つからない(理由不明)、410は意図的に恒久削除済みを意味します。410はGoogleのクローラーに『二度と来なくていい』と伝えるため、廃止済みURLには410を返すとインデックス整理が早まります。
Q3. 500と502と503の違いは?
A. 500はサーバー内部で予期しないエラー(コードバグ等)、502は上流サーバーから無効レスポンス(リバースプロキシ越しのバックエンド停止)、503はサーバー過負荷・メンテナンス中(一時的に利用不可)。503はRetry-Afterヘッダで再試行時間を指定できます。
Q4. 401と403の違いは?
A. 401はそもそも認証されていない(ログインしていない)、403は認証は通ったが権限不足(他人のデータにアクセス等)です。401は『誰だか分からない』、403は『あなたは誰か分かるが権限がない』と覚えると良いでしょう。
Q5. なぜAPIで204を返すのか?
A. DELETE成功時や、空配列を返したい更新APIなど『成功したがレスポンスボディが不要』なケースで使います。200で空ボディを返すよりも、204の方がHTTP的に正確で帯域も節約できます。
Q6. CORSエラーは何番ですか?
A. CORSエラーはステータスコードとしては通常200や403で返ってきますが、ブラウザがAccess-Control-Allow-Originヘッダの不一致を検出してJavaScriptに結果を渡さない仕様です。サーバー側で適切なCORSヘッダを設定する必要があります。
Q7. HTTPステータスコードが『418 I'm a teapot』なのはなぜ?
A. 1998年のエイプリルフールRFC 2324『HTCPCP(Hyper Text Coffee Pot Control Protocol)』のジョークコードです。実装ジョークとして残されています。Googleやnodejsの一部でも実装例があります。
Q8. リダイレクトコードの選び方は?
A. 恒久移動なら301(SEO評価引継ぎ)、一時移動なら302です。HTTPメソッドを維持したい場合は307(一時)/308(恒久)を使います。例えばPOSTのままリダイレクトしたい場合は307/308が必須です。
Q9. SEO的に301と302どちらを使うべき?
A. URL変更が恒久的なら必ず301を使います。302は『一時的な変更』をGoogleに伝えるため、元URLのインデックスが残り続けます。引越し済みなのに302を使うとSEO評価が分散します。
Q10. ステータスコードを確認する方法は?
A. ブラウザならF12開発者ツールのNetworkタブで確認できます。コマンドラインなら curl -I [URL] でヘッダだけ取得、-v で詳細表示。Chrome拡張『Redirect Path』やcurlコマンドが定番です。
関連する早見表
- Linuxコマンド早見表 — サーバーログ調査・curl実行
- 正規表現早見表 — ログから特定コードを抽出
- サブネットマスク早見表 — IPアドレス・CIDR
- LANケーブル規格 — 物理層
- ポート番号早見表 — 80/443などWell-Knownポートとプロトコル
関連規格・出典
- RFC 9110「HTTP Semantics」(2022) — 現行HTTPセマンティクスの標準
- RFC 7230〜7235「HTTP/1.1」(2014) — 旧標準・現在も参照される
- RFC 6585 — 追加ステータスコード(428, 429, 431, 511)
- RFC 7725 — 451 Unavailable For Legal Reasons
- IANA HTTP Status Code Registry — 公式登録一覧
- MDN Web Docs / Mozilla HTTP Status Reference
最終更新: 2026-07-04