HTTPステータスコードの意味と、API障害の切り分け方
執筆: ありがっさまりょうた
デジタル道具屋を個人で開発・運用しています。記事は実装時の検証結果と公式仕様を照合して執筆しています。
本記事の執筆方針と編集ポリシーについてはAbout ページをご覧ください。
導入:「APIが動かないんだけど」だけじゃわからない





1. 知らないと恥ずかしい?現場で頻出するステータスコード

| 番号帯 | 意味 | 一言で言うと |
|---|---|---|
| 1xx | 情報応答 | 「処理中だよ」 |
| 2xx | 成功 | 「うまくいったよ」 |
| 3xx | リダイレクト | 「別の場所を見てね」 |
| 4xx | クライアントエラー | 「あなたのリクエストがおかしい」 |
| 5xx | サーバーエラー | 「サーバー側で問題発生」 |
- 200 OK:正常にレスポンスを返せた
- 201 Created:リソースの新規作成に成功(POST成功時に使う)
- 301 / 308:恒久的なリダイレクト(SEOで重要)
- 400 Bad Request:リクエストの形式が不正(バリデーションエラー)
- 401 Unauthorized:認証されていない(トークン切れなど)
- 403 Forbidden:認証済みだが権限がない
- 404 Not Found:リソースが見つからない
- 429 Too Many Requests:レート制限に引っかかった
- 500 Internal Server Error:サーバー側の未処理エラー
- 502 Bad Gateway:バックエンドサーバーの応答異常
- 503 Service Unavailable:メンテナンス中やサーバー過負荷
2. ステータスコードで「障害の原因」を即座に切り分ける

401 vs 403:認証と認可の違い


502 vs 503 vs 504:サーバーダウンの切り分け
502はロードバランサーがバックエンドから不正な応答を受けたとき、503はサーバーが過負荷やメンテナンス中のとき、504はバックエンドからの応答がタイムアウトしたときに返されます。 この違いを理解していれば、「Nginxの設定問題なのか」「アプリサーバーの問題なのか」「DBの応答遅延なのか」を即座に判断できます。
当サイトのHTTPステータスコード検索ツールを使えば、 コード番号を入力するだけで詳細な説明と適切な対処法を確認できます。
3. プロが教える「一歩先の」テクニカルTips

Tips 1: APIレスポンスのステータスコードを正しく設計する
「全部200で返して、ボディ内のerrorフラグで判定する」設計はアンチパターンです。 HTTPステータスコードを正しく使い分けることで、フロントエンド側のエラーハンドリングがシンプルになり、 モニタリングツールでのエラー検知も正確になります。
Tips 2: リダイレクトの301と302を使い分ける
301(恒久的リダイレクト)はSEOの評価を引き継ぎます。ドメイン移行やURL構造の変更に使います。302(一時リダイレクト)はメンテナンスページへの一時誘導やA/Bテストに使います。 間違えるとSEO評価が損なわれるため、選択には注意が必要です。
🚨 現場の注意点:429(レート制限)を無視しない
外部APIを利用するとき、429が返ってきたら必ず Retry-After ヘッダーを確認してから再試行してください。 無限リトライはAPI側からIPブロックされる原因になります。 Exponential Backoff(指数バックオフ)を実装するのが安全です。
参考にした一次情報
本記事の内容は、以下の公式仕様や一次情報を参照して執筆しています。
- RFC 9110 - HTTP Semantics
IETF
https://www.rfc-editor.org/rfc/rfc9110
- HTTP response status codes
MDN Web Docs
https://developer.mozilla.org/docs/Web/HTTP/Reference/Status
「HTTPステータスコードは、Web開発者にとっての共通言語じゃ。 この言語を正しく理解すれば、障害対応のスピードも、API設計の品質も格段に上がるぞ。 困ったときはHTTPステータスコード検索ツールですぐに確認するのじゃ!」