HTTP ステータスコード
HTTP レスポンスの結果を 3 桁の数値で表す標準コードで、1xx〜5xx の 5 カテゴリに分類される
HTTPAPI
HTTP ステータスコードとは
HTTP ステータスコードは、サーバーがクライアントに返す 3 桁の数値で、リクエストの処理結果を表す。1xx〜5xx の 5 カテゴリに分類される。
カテゴリ
| カテゴリ | 意味 | 例 |
|---|---|---|
| 1xx | 情報 | 100 Continue |
| 2xx | 成功 | 200 OK, 201 Created |
| 3xx | リダイレクト | 301 Moved, 304 Not Modified |
| 4xx | クライアントエラー | 400 Bad Request, 404 Not Found |
| 5xx | サーバーエラー | 500 Internal Error, 503 Unavailable |
よく使うステータスコード
| コード | 意味 | 使い方 |
|---|---|---|
| 200 | OK | GET の成功 |
| 201 | Created | POST でリソース作成 |
| 204 | No Content | DELETE の成功 (ボディなし) |
| 301 | Moved Permanently | URL の恒久的な移動 |
| 304 | Not Modified | キャッシュが有効 |
| 400 | Bad Request | バリデーションエラー |
| 401 | Unauthorized | 認証が必要 |
| 403 | Forbidden | 権限がない |
| 404 | Not Found | リソースが存在しない |
| 409 | Conflict | 競合 (楽観ロック失敗) |
| 429 | Too Many Requests | レート制限 |
| 500 | Internal Server Error | サーバー内部エラー |
| 502 | Bad Gateway | 上流サーバーのエラー |
| 503 | Service Unavailable | 一時的に利用不可 |
API Gateway のステータスコード
API Gateway は Lambda タイムアウト時に 504、Lambda の未処理例外で 502、スロットリング時に 429、Cognito 認証失敗時に 401 を返す。Lambda 自体が返すステータスコードとは別に、API Gateway が自動的に付与するコードがある点に注意が必要だ。
リダイレクトの使い分け
恒久的な URL 移動には 301 (リンクジュースが移転先に引き継がれる) を使い、一時的な移動には 302 を使う。POST メソッドを維持したままリダイレクトする場合は、一時的なら 307、恒久的なら 308 を使う。
リトライの判断
429 (レート制限)、500 (サーバー内部エラー)、503 (一時的に利用不可) はリトライ対象で、特に 429 は Retry-After ヘッダーを尊重する。400 (バリデーションエラー) や 404 (リソースなし) はリクエスト自体を修正する必要があるため、リトライしても意味がない。
HTTP ステータスコードを扱う関連書籍も多い。