HTTPステータスコード一覧 (HTTP/1.1)

Webサーバーから返されるHTTPレスポンスヘッダのステータス行(基本的に最初の1行)は始めにHTTPバージョン("HTTP/1.1")に続いて3桁のステータスコード、さらにReason-Phrase(理由等を示したメッセージ)が続く。行の最後はCRLFで終わる。

ステータス行の例
HTTP/1.1 200 OK CRLF
HTTP/1.1 403 Forbidden CRLF
HTTP/1.1 500 Internal Server Error CRLF

HTTPステータスコードは先頭の1桁によって大きく以下の5つのカテゴリに分類されており、先頭の一桁をチェックすればリクエストの成功/エラーなど大体の状態は把握できるようになっている。

コード 基本的な意味
1xx Informational リクエストは正しく受け付けられており、クライントはリクエストを続行する必要がある
2xx Success リクエストが正しく受け付けられたことを示す
3xx Redirection リクエストを完了するには他のURL等を参照する必要がある
4xx Client Error クライアントからの要求にエラー等があるため、リクエストが処理されなかったことを示す
5xx Server Error サーバー側の問題によりリクエストが処理されなかったことを示す

HTTP/1.1で用いられる具体的なステータスコードの値およびそれに該当する基本的なメッセージは下記の通りである。

1xx Informational Request received, continuing process
100 Continue クライアントにリクエストを継続することを指示します
101 Switching Protocols 上位バージョンのHTTPでのリクエストを要求します
2xx Success The action was successfully received, understood, and accepted
200 OK リクエストは成功しました
201 Created リクエスト成功/異なる場所にリソースが作成されました
202 Accepted 要求は受け付けられましたが処理は未完了です
203 Non-Authoritative Information リクエスト成功/返される結果はオリジナルのものでありません
204 No Content リクエスト成功/返すべきリソースはありません
205 Reset Content リクエスト成功/クライアントにリセットを要求します
206 Partial Content リクエスト成功/部分的な内容を返します
3xx Redirection Further action must be taken in order to complete the request
300 Multiple Choices 複数の場所に置かれたリソースが利用可能です
301 Moved Permanently 他の場所に移転しました
302 Found
Moved Temporalily
一時的に他の場所に移転しました
303 See Other 他の場所を参照してください
304 Not Modified 要求されたリソースに変更はありません
305 Use Proxy 特定のプロキシ経由でのみ要求を受け付けます
307 Temporary Redirect 要求されたリソースは一時的に異なるアドレスに置かれています
4xx Client Error The request contains bad syntax or cannot be fulfilled
400 Bad Request リクエストの書式にエラーがあります
401 Unauthorized ユーザー認証が必要です
402 Payment Required (将来拡張用)
403 Forbidden アクセス権限がありません
404 Not Found 要求されたリソースは存在しません
405 Method Not Allowed 許可されていない要求メソッドです
406 Not Acceptable 受け入れられないリソースです
407 Proxy Authentication Required プロキシ認証が必要です
408 Request Time-out 時間内にリクエストが完了しませんでした
409 Conflict リソースに対するリクエストに矛盾があります
410 Gone 要求されたリソースは現在はサーバーに存在しません(移転先不明)
411 Length Required Content-Lengthに満たない長さのリクエストです
412 Precondition Failed リクエストヘッダの条件が満たされませんでした
413 Request Entity Too Large 許容長さを超えるリクエストエンティティが含まれています
414 Request-URI Too Large 要求されたアドレスが長すぎます
415 Unsupported Media Type サーバーでサポートされていないメディア形式を要求しました
416 Requested range not satisfiable If-Rangeリクエストヘッダーで指定された範囲が無効です
417 Expectation Failed Expectリクエストヘッダフィールド拡張が合致しません
5xx Server Error The server failed to fulfill an apparently valid request
500 Internal Server Error リクエスト処理中に予期せぬエラーが発生しました
501 Not Implemented サーバーはリクエストを処理する機能を有していません
502 Bad Gateway 上位サーバーから無効な応答を受けました
503 Service Unavailable 過負荷またはメンテナンス中のため要求を処理できません
504 Gateway Time-out 上位サーバーとの間でタイムアウトが発生しました
505 HTTP Version not supported サポートされていないバージョンのHTTPです

サーバーが上記以外のステータスを返す必要がある場合、サーバーは未定義のステータスコードを自由に拡張定義して使用することが出来るが、拡張定義されたステータスコードは必ず前述の分類に合致していなくてはならない(合致していないと多くのクライアントはステータスを正しく解釈しない恐れがある)。