HTTP ステータスコード
訪問者がウェブページを閲覧する際、訪問者のブラウザはウェブページが置かれているサーバーにリクエストを送信します。ブラウザがウェブページを受信して表示する前に、このウェブページが置かれているサーバーは、ブラウザのリクエストに応答するための HTTP ステータスコードを含む情報ヘッダー(サーバーヘッダー)を返します。
HTTP ステータスコードの英語はHTTP Status Code。
以下は一般的な HTTP ステータスコードです:
- 1xx(情報ステータスコード):受け取ったリクエストが処理中であることを示します。
- 2xx(成功ステータスコード):リクエストが正常に処理完了したことを示します。
- 3xx(リダイレクトステータスコード):このリクエストを完了するには後続の操作が必要です。
- 4xx(クライアントエラーステータスコード):リクエストに構文エラーが含まれているか、リクエストを完了できないことを示します。
- 5xx(サーバーエラーステータスコード):サーバーがリクエストを処理する過程でエラーが発生したことを示します。
HTTP ステータスコードの分類
HTTP ステータスコードは3桁の10進数で構成され、最初の10進数がステータスコードのタイプを定義します。レスポンスは5つのカテゴリに分類されます:情報レスポンス(100〜199)、成功レスポンス(200〜299)、リダイレクト(300〜399)、クライアントエラー(400〜499)、サーバーエラー(500〜599):
| 分類 | 分類の説明 |
|---|---|
| 1** | 情報。サーバーはリクエストを受信し、リクエスト送信者に操作の継続を求めます |
| 2** | 成功。操作が正常に受信され処理されました |
| 3** | リダイレクト。リクエストを完了するにはさらなる操作が必要です |
| 4** | クライアントエラー。リクエストに構文エラーが含まれているか、リクエストを完了できません |
| 5** | サーバーエラー。サーバーがリクエストを処理する過程でエラーが発生しました |
HTTP ステータスコード一覧:
| ステータスコード | ステータスコードの英語名 | 説明 |
|---|---|---|
| 100 | Continue | 継続。クライアントはリクエストを継続する必要があります |
| 101 | Switching Protocols | プロトコル切り替え。サーバーはクライアントのリクエストに応じてプロトコルを切り替えます。より上位のプロトコルにのみ切り替えることができます。例えば、HTTP の新しいバージョンのプロトコルに切り替えます |
| 200 | OK | リクエスト成功。通常 GET リクエストと POST リクエストに使用されます |
| 201 | Created | 作成完了。リクエストが成功し、新しいリソースが作成されました |
| 202 | Accepted | 受理済み。リクエストは受理されましたが、処理は完了していません |
| 203 | Non-Authoritative Information | 非権威情報。リクエストは成功しました。ただし、返されるメタ情報は元のサーバーではなく、コピーです |
| 204 | No Content | コンテンツなし。サーバーは正常に処理しましたが、コンテンツを返しませんでした。ウェブページを更新しない場合、ブラウザが現在のドキュメントを表示し続けることを保証します |
| 205 | Reset Content | コンテンツのリセット。サーバーの処理は成功し、ユーザー端末(例:ブラウザ)はドキュメントのビューをリセットする必要があります。このレスポンスコードを使用して、ブラウザのフォームフィールドをクリアできます |
| 206 | Partial Content | 部分コンテンツ。サーバーは GET リクエストの一部を正常に処理しました |
| 300 | Multiple Choices | 複数の選択肢。リクエストされたリソースには複数の場所が含まれる可能性があり、ユーザー端末(例:ブラウザ)が選択できるように、リソースの特徴とアドレスのリストを返すことができます |
| 301 | Moved Permanently | 恒久移動。リクエストされたリソースは新しい URI に恒久的に移動されました。返される情報には新しい URI が含まれ、ブラウザは自動的に新しい URI へリダイレクトされます。今後、新しいリクエストはすべて新しい URI を使用する必要があります |
| 302 | Found | 一時的移動。301 と似ています。ただし、リソースは一時的に移動されただけです。クライアントは元の URI を引き続き使用する必要があります |
| 303 | See Other | 他のアドレスを参照。301 と似ています。GET リクエストと POST リクエストを使用して参照します |
| 304 | Not Modified | 未変更。リクエストされたリソースは変更されていません。サーバーがこのステータスコードを返すとき、リソースは返されません。クライアントは通常、アクセスしたリソースをキャッシュしており、指定した日付以降に変更されたリソースのみを返すよう希望することを示すヘッダー情報を提供します |
| 305 | Use Proxy | プロキシの使用。リクエストされたリソースはプロキシを経由してアクセスする必要があります |
| 306 | Unused | 廃止された HTTP ステータスコード |
| 307 | Temporary Redirect | 一時的リダイレクト。302 と似ています。GET リクエストを使用してリダイレクトします |
| 400 | Bad Request | クライアントのリクエストに構文エラーがあり、サーバーが理解できません |
| 401 | Unauthorized | リクエストはユーザーの認証を要求します |
| 402 | Payment Required | 予約済み、将来使用 |
| 403 | Forbidden | サーバーはクライアントのリクエストを理解しましたが、このリクエストの実行を拒否しました |
| 404 | Not Found | サーバーはクライアントのリクエストに基づいてリソース(ウェブページ)を見つけることができません。このコードを使用して、ウェブサイトの設計者は「お探しのリソースは見つかりませんでした」というカスタムページを設定できます |
| 405 | Method Not Allowed | クライアントのリクエスト内のメソッドが禁止されています |
| 406 | Not Acceptable | サーバーはクライアントのリクエストのコンテンツ特性に基づいてリクエストを完了できません |
| 407 | Proxy Authentication Required | リクエストはプロキシの認証を要求します。401 と似ていますが、リクエスト者はプロキシを使用して認証を受ける必要があります |
| 408 | Request Time-out | サーバーがクライアントから送信されるリクエストを待つ時間が長すぎるため、タイムアウトしました |
| 409 | Conflict | サーバーがクライアントの PUT リクエストを完了するときに返される可能性があるコードです。サーバーがリクエストを処理する際に競合が発生しました |
| 410 | Gone | クライアントがリクエストしたリソースは既に存在しません。410 は 404 とは異なります。リソースが以前に存在し、現在は完全に削除されている場合は 410 コードを使用できます。ウェブサイトの設計者は 301 コードを使用してリソースの新しい場所を指定できます |
| 411 | Length Required | サーバーはクライアントが送信した Content-Length を含まないリクエスト情報を処理できません |
| 412 | Precondition Failed | クライアントのリクエスト情報の前提条件がエラーです |
| 413 | Request Entity Too Large | リクエストのエンティティが大きすぎるため、サーバーは処理できず、リクエストを拒否します。クライアントの連続的なリクエストを防ぐため、サーバーは接続を閉じる場合があります。サーバーが一時的に処理できないだけの場合は、Retry-After のレスポンス情報が含まれます |
| 414 | Request-URI Too Large | リクエストの URI が長すぎるため(URI は通常 URL)、サーバーは処理できません |
| 415 | Unsupported Media Type | サーバーはリクエストに付随するメディア形式を処理できません |
| 416 | Requested range not satisfiable | クライアントのリクエストの範囲が無効です |
| 417 | Expectation Failed(期待失敗) | サーバーはリクエストヘッダーの Expect フィールドで指定された期待される動作を満たすことができません。 |
| 418 | I'm a teapot | ステータスコード 418 は実際にはエイプリルフールの冗談です。これは RFC 2324 で定義されており、この RFC はハイパーテキストコーヒーポット制御プロトコル(HTCPCP)に関するジョーク文書です。このジョークでは、418 ステータスコードは HTTP プロトコルに冗談として追加されました。 |
| 500 | Internal Server Error | サーバー内部エラー。リクエストを完了できません |
| 501 | Not Implemented | サーバーはリクエストされた機能をサポートしていないため、リクエストを完了できません |
| 502 | Bad Gateway | ゲートウェイまたはプロキシとして動作するサーバーがリクエストを実行しようとしたとき、リモートサーバーから無効なレスポンスを受信しました |
| 503 | Service Unavailable | 過負荷またはシステムメンテナンスのため、サーバーは一時的にクライアントのリクエストを処理できません。遅延の長さはサーバーの Retry-After ヘッダー情報に含めることができます |
| 504 | Gateway Time-out | ゲートウェイまたはプロキシとして機能するサーバーが、リモートサーバーからリクエストをタイムリーに取得できませんでした |
| 505 | HTTP Version not supported | サーバーはリクエストされた HTTP プロトコルのバージョンをサポートしていないため、処理を完了できません |