Webアプリを開発していると、HTTPステータスコードを目にする機会が必ずあります。
「200」「404」「500」などの数字は、ブラウザやサーバーがどんな状態なのかを伝える信号です。この記事では、代表的なステータスコードとその意味をわかりやすく解説します。
✅ 2xx:リクエスト成功
- 200 OK
最も一般的。リクエストが成功し、期待通りの結果が返ってきたとき。 - 201 Created
新しいリソースが作成されたとき(例:ユーザー登録成功)。 - 204 No Content
処理は成功したが返すデータがない場合(例:削除処理)。
🚩 3xx:リダイレクト
- 301 Moved Permanently
ページが恒久的に移動。SEOで「正しいURL」を伝えるときに重要。 - 302 Found
一時的な移動。古いブラウザやアプリでよく使われる。 - 304 Not Modified
キャッシュが最新のため、再ダウンロード不要。
❌ 4xx:クライアントエラー
- 400 Bad Request
リクエストの形式が不正。パラメータ不足など。 - 401 Unauthorized
認証が必要(ログインしていない)。 - 403 Forbidden
認証済みだが権限がない(管理者専用ページなど)。 - 404 Not Found
ページやリソースが存在しない。誰もが一度は見たことがあるコード。 - 429 Too Many Requests
アクセスしすぎによる制限。短時間に大量アクセスすると出る。
🔥 5xx:サーバーエラー
- 500 Internal Server Error
サーバー内部のバグや処理エラー。 - 502 Bad Gateway
ゲートウェイやリバースプロキシが不正な応答を受け取った。 - 503 Service Unavailable
サーバーが過負荷、またはメンテナンス中で一時停止している。 - 504 Gateway Timeout
サーバーからの応答が遅すぎてタイムアウト。
🔍 実際のログでの読み解き方
開発や運用中のサーバーログには、こんな形式で出力されることがあります。
127.0.0.1 - - [14/Sep/2025 10:15:32] "GET /admin/api/users HTTP/1.1" 200 -
127.0.0.1 - - [14/Sep/2025 10:15:40] "POST /login HTTP/1.1" 401 -
127.0.0.1 - - [14/Sep/2025 10:15:45] "GET /unknown-page HTTP/1.1" 404 -
127.0.0.1 - - [14/Sep/2025 10:15:55] "GET /admin/api/users HTTP/1.1" 429 -
127.0.0.1 - - [14/Sep/2025 10:16:05] "GET /admin/api/users HTTP/1.1" 500 -
解説:
200→ 正常にデータ取得できた401→ ログインせずアクセスしたため拒否404→ 存在しないページにアクセス429→ 短時間にアクセスしすぎて制限500→ サーバー内部で例外が発生
ポイント
ログを読むときは「どのURLに」「どのメソッド(GET/POST)」でアクセスした結果、どのコードが返ったかを確認すれば原因が見えます。
📋 よく使うHTTPステータスコード早見表
| ステータス | 意味 | よくあるシーン |
|---|---|---|
| 200 OK | 成功 | 正常にページやAPIを取得 |
| 201 Created | 作成成功 | 新規ユーザー登録 |
| 204 No Content | 成功(データなし) | 削除成功 |
| 301 Moved Permanently | 恒久的移動 | サイトURL変更 |
| 302 Found | 一時移動 | ログイン後のリダイレクト |
| 304 Not Modified | 更新なし | キャッシュ利用 |
| 400 Bad Request | 不正リクエスト | パラメータ不足 |
| 401 Unauthorized | 未認証 | ログインしていない |
| 403 Forbidden | 禁止 | 権限不足 |
| 404 Not Found | 存在しない | ページURL間違い |
| 429 Too Many Requests | リクエスト過多 | アクセス集中・DoS対策 |
| 500 Internal Server Error | サーバーエラー | バグ発生 |
| 502 Bad Gateway | ゲートウェイ不正応答 | リバースプロキシ |
| 503 Service Unavailable | サービス利用不可 | 過負荷・メンテ中 |
| 504 Gateway Timeout | 応答遅延 | APIサーバー遅延 |
💡 まとめ
- 200系 → 成功
- 300系 → 移動(リダイレクト)
- 400系 → クライアント側のエラー
- 500系 → サーバー側のエラー
実際のログと組み合わせて理解すれば、トラブル原因の切り分けがぐっと楽になります。


コメント