目次
HTTPレスポンスのステータスコードとは
HTTPレスポンスのステータスコードは、サーバがクライアントからのリクエストをどのように処理したかを示す3桁の数値です。
| HTTP/1.1 200 OK HTTP/1.1 404 Not Found |
ステータスコードの分類
| 番号 | 意味 |
|---|---|
| 1xx | 情報(処理継続中) |
| 2xx | 成功 |
| 3xx | リダイレクト |
| 4xx | クライアント起因(リクエスト不備・認証/認可) |
| 5xx | サーバ起因(処理失敗) |
ステータスコードの一覧
| コード | 英字 | 説明 |
|---|---|---|
| 100 | Continue | クライアントはリクエストを続けて良い |
| 200 | OK | リクエストが成功しレスポンスが返されます。正常処理を表します。 |
| 201 | Created | リソース作成成功 |
| 204 | No Content | 成功したがレスポンスボディなし |
| 301 | Moved Permanently | 指定したリソースは移動したので、新しい場所から取得してください。 サイトの引越しをしたときは、この値を設定します。 |
| 302 | Moved Temporarily | 指定したリソースは一時的に移動したので、新しい場所から取得してください。 一時的にサイトの場所を変える時にこの値を設定します。 |
| 304 | Not Modified | 指定したファイルは変更されていないのでブラウザのキャッシュのデータを表示してください。 |
| 307 | Temporary Redirect | 一時的に別のURLへリダイレクトする HTTPメソッド(POSTなど)を変更せずに再送する |
| 308 | Permanent Redirect | 恒久的に別のURLへ移動している HTTPメソッドを変更せずに再送する |
| 400 | Bad Request | リクエストが不正です。 |
| 401 | Unauthorized | 認証に失敗しました。 |
| 403 | Forbidden | アクセス権がありません。 |
| 404 | Not Found | リクエストしたアドレスのページがありません。 |
| 408 | Request Timeout | リクエストがタイムアウトしました。 |
| 500 | Internal Server Error | サーバ内部の予期しないエラー |
| 502 | Bad Gateway | ゲートウェイ/プロキシが無効なレスポンスを受け取りました。 |
| 503 | Service Unavailable | サービスが提供できません。 Webサーバーに負荷がかかりすぎたときなどに表示されます。 |
| 504 | Gateway Timeout | 上流からのレスポンスが時間内に得られないときに表示されます。 |
補足
301:SEOやURL正規化で使用
302:一時的な移動
POSTリダイレクトでは以下も重要:
・307 Temporary Redirect(メソッド維持)
・308 Permanent Redirect(恒久・メソッド維持)
メソッドを絶対変えたくないときに使うコード
302は歴史的理由で挙動が曖昧なため、307/308を使うケースも多い
401 と 403 の違い
401:認証が必要(未ログイン・認証情報不正)
403:認証済みでもアクセス禁止(権限不足など)
304 Not Modified の仕組み(キャッシュ)
304は通常のエラーではなく、キャッシュ制御の一部です。
流れ
- クライアントが条件付きリクエスト送信(If-Modified-Since/If-None-Match(ETag))
- サーバが変更なしと判断
- 304を返す(本文なし)
クライアントは手元のキャッシュを再利用
関連の記事
