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

よく使うステータスコード

よく使うステータスコードを以下にまとめる。

コード意味使い方
200OKGET の成功
201CreatedPOST でリソース作成
204No ContentDELETE の成功 (ボディなし)
301Moved PermanentlyURL の恒久的な移動
304Not Modifiedキャッシュが有効
400Bad Requestバリデーションエラー
401Unauthorized認証が必要
403Forbidden権限がない
404Not Foundリソースが存在しない
409Conflict競合 (楽観ロック失敗)
429Too Many Requestsレート制限
500Internal Server Errorサーバー内部エラー
502Bad Gateway上流サーバーのエラー
503Service Unavailable一時的に利用不可

API Gateway のステータスコード

API GatewayLambda タイムアウト時に 504、Lambda の未処理例外で 502、スロットリング時に 429、Cognito 認証失敗時に 401 を返す。Lambda 自体が返すステータスコードとは別に、API Gateway が自動的に付与するコードがある点に注意が必要だ。

リダイレクトの使い分け

恒久的な URL 移動には 301 (リンクジュースが移転先に引き継がれる) を使い、一時的な移動には 302 を使う。POST メソッドを維持したままリダイレクトする場合は、一時的なら 307、恒久的なら 308 を使う。

リトライの判断

429 (レート制限)、500 (サーバー内部エラー)、503 (一時的に利用不可) はリトライ対象で、特に 429 は Retry-After ヘッダーを尊重する。400 (バリデーションエラー) や 404 (リソースなし) はリクエスト自体を修正する必要があるため、リトライしても意味がない。

HTTP ステータスコードを扱う関連書籍も多い。

この記事は役に立ちましたか?

関連用語

関連する記事