このガイドが役立つ場面
HTTPステータスコード一覧、404・500エラーの意味、401と403の違い、429と503の対処、リダイレクトや再試行・キャッシュ可否を調べたい利用者向けです。
- APIリクエストが401、403、404で失敗する原因を切り分ける
- 429や503を受け取ったクライアントの再試行方法を検討する
- 301・302・307・308の違いを比較してリダイレクトを設計する
- 問い合わせへ添付するステータス行と確認事項を整理する
HTTPステータスコードの分類と見方
- 1xxは処理継続中、2xxは成功、3xxはリダイレクトを表す
- 4xxは主にリクエスト側、5xxは主にサーバー側の問題を示す
- 401と403、404と410、429と503などは似ていても用途が異なる
- Retry-After、Location、WWW-Authenticate、Cache-Controlなどの関連ヘッダーも確認する
コードの意味と対処を確認する手順
- ブラウザの開発者ツール、APIクライアント、ログからステータスコードを確認します。
- コード、英語名、日本語の意味で検索し、対象コードの詳細を開きます。
- 主な原因とクライアント・サーバー側の確認事項をレスポンス本文やヘッダーと照合します。
- 必要に応じて似ているコードを並べ、API仕様で使うべきコードや対処の違いを比較します。
- 再試行する場合は、処理の重複を避けられるか、待機時間や上限回数を確認します。
障害調査とAPI設計での注意
同じステータスコードでも、Webサーバー、CDN、認証基盤、アプリケーションのどこが返したかで原因は変わります。レスポンス本文、関連ヘッダー、リクエストID、サーバーログを合わせて確認してください。
POSTなどの非冪等な処理を機械的に再送すると、注文や決済を重複実行するおそれがあります。再試行可否はステータスコードだけで決めないでください。
具体例:429 Too Many Requestsへの再試行を設計する
429は短時間に許容量を超えるリクエストを送った場合などに返されます。すぐ同じ頻度で再送すると制限が長引くため、レスポンスのRetry-Afterとサービス側のレート制限仕様を確認します。
自動再試行では待機時間を徐々に延ばし、最大試行回数を設けます。POSTを含む場合は、冪等性キーや処理結果の照会手段があるかも確認します。
- 429を検索し、意味、再試行可否、関連ヘッダーを確認します。
- レスポンスにRetry-Afterがあるかを開発者ツールで確認します。
- API仕様のリクエスト上限とリセット条件を確認します。
- 指数バックオフ、最大試行回数、重複防止を実装してテストします。
429が継続する場合は、再試行回数を増やすより、呼び出し頻度、キャッシュ、バッチ化、契約上限を見直してください。
よくある質問
- 4xxはすべて利用者の操作ミスですか?
- いいえ。4xxはリクエストをそのまま処理できないことを示しますが、認証設定、URL生成、プロキシ、API仕様変更など実装・運用側の原因もあります。
- 5xxなら同じリクエストをすぐ再送してよいですか?
- 必ずしも安全ではありません。HTTPメソッドの冪等性、サーバー側で処理済みの可能性、Retry-After、待機時間、最大試行回数を確認してください。
ブラウザで試す
入力内容はブラウザ内で処理されます。元データを残したうえで、結果を確認してから保存・共有してください。
HTTPステータスコード一覧を開く