HTTP response codes

by 1 contributor:

HTTP レスポンスコードは、特定の HTTP リクエストが正常に完了したかを示します。レスポンスは 5 つのクラスに分類されます: 情報レスポンス、成功レスポンス、リダイレクション、クライアントエラー、サーバエラー。

以下の表でそれらすべてを、各々の意味とともに挙げます:

エラーコード エラーテキスト 説明 HTTP バージョン
情報レスポンス
100 Continue この暫定レスポンスは、その時点までのすべてに問題がなくクライアントはリクエストを継続してよい、またもしリクエストが完了している場合は無視してよいことを示します。 HTTP/1.1 のみ
101 Switching Protocol このコードはクライアントの Upgrade: リクエストヘッダの応答として送信され、サーはプロトコルを切り替えていることを示します。これは互換性のないプロトコルバージョンへの移行を可能にするために導入されましたが、あまり使用されていません。 HTTP/1.1 のみ
成功レスポンス
200

OK

リクエストが成功したことを示します。"成功" が意味することは、HTTP メソッドにより異なります:
  • GET: リソースが取り出され、メッセージボディで伝送されます。
  • HEAD: エンティティヘッダがメッセージボディ内にあります。
  • POST: アクションの結果を表すリソースがメッセージボディで伝送されます。
  • TRACE: サーバが受理したリクエストメッセージがメッセージボディに含まれています。
PUT、DELETE および OPTIONS メソッドは 200 OK レスポンスになりません。
HTTP/0.9 以降
201 Created リクエストは成功し、その結果新たなリソースが作成されたことを示します。これは一般的に、PUT リクエストを送信した後のレスポンスになります。 HTTP/0.9 以降
202 Accepted リクエストは受理されたが、まだ実行されていないことを示します。これはあいまいであり、なぜなら HTTP ではリクエストを処理した結果を示す非同期なレスポンスを後から送信する方法がないためです。リクエストは別のプロセスかサーバが処理する、またはバッチ処理する予定です。 HTTP/0.9 以降
203 Non-Authoritative Information このレスポンスコードは、返されるメタ情報のセットが生成元のサーバから得られるセットと同一ではなく、ローカルまたは第三者の持つ複製から収集したことを表します。このような状態を除いて、200 OK が本レスポンスより好ましいレスポンスです。 HTTP/0.9 および 1.1
204 No Content リクエストに対して送信するコンテンツはありませんが、ヘッダは有用であることを示します。ユーザエージェントはこのリソースに関するキャッシュ済みのヘッダを、新たな内容に更新します。 HTTP/0.9 以降
205 Reset Content このレスポンスコードはリクエストの完了後に送信され、ユーザエージェントに対し、リクエストを送信したドキュメントの表示をリセットするよう伝達します。 HTTP/1.1 のみ
206 Partial Content このレスポンスコードは、クライアントがダウンロードを複数のストリームに分けるために Range: ヘッダを送信したことを理由として用いられます。 HTTP/1.1 のみ
Redirection messages
300 Multiple Choice リクエストに対して複数のレスポンスがあることを示します。ユーザエージェントやユーザは、それらからひとつを選択します。なお、複数のレスポンスからひとつを選ぶ方法は標準化されていません。 HTTP/1.0 以降
301 Moved Permanently このレスポンスコードは、リクエストされたリソースの URI が変更されたことを示します。おそらく、新しい URI がレスポンス内で与えられるでしょう。 HTTP/0.9 以降
302 Found このレスポンスコードは、リクエストされたリソースの URI が一時的に変更されたことを示します。URI は将来、新たに変更される可能性があります。従って、クライアントは将来のリクエストでも同じ URI を用いるべきです。 HTTP/0.9 以降
303 See Other サーバはこのレスポンスを、リクエストされたリソースを別の URI で、GET リクエストを用いて取得するようクライアントを誘導するために送信します。 HTTP/0.9 および 1.1
304 Not Modified これはキャッシュ用に用いられます。このレスポンスコードはクライアントに対して、レスポンスは変更されていないことを示します。よって、クライアントはキャッシュ済みのレスポンスを使い続けます。 HTTP/0.9 以降
305 Use Proxy これは、リクエストされたリソースはプロキシサーバ経由でアクセスしなければならないことを示します。このレスポンスコードはセキュリティ上の理由から、あまりサポートされていません。 HTTP/1.1 のみ
306 unused このレスポンスコードは使用されす、現在は予約済みです。HTTP 1.1 仕様の旧バージョンでは使用されていました。 HTTP/1.1 のみ
307 Temporary Redirect サーバはこのレスポンスを、リクエストされたリソースを別の URI で、元のリクエストと同じメソッドを用いて取得するようクライアントを誘導するために送信します。これは 302 Found HTTP レスポンスコードと同じ意味を持ちますが、ユーザエージェントは使用する HTTP メソッドを変更してはならない点が異なります: 始めのリクエストで POST を用いた場合は、次のリクエストでも POST を用いなければなりません。 HTTP/1.1 のみ
308 Permanent Redirect

これは、リソースが Location: HTTP レスポンスヘッダで指定した別の URI へ永続的に置かれていることを示します。これは 301 Moved Permanently HTTP レスポンスコードと同じ意味を持ちますが、ユーザエージェントは使用する HTTP メソッドを変更してはならない点が異なります: 始めのリクエストで POST を用いた場合は、次のリクエストでも POST を用いなければなりません。

注意: これは仕様が草案段階である、実験的なレスポンスコードです。
draft-reschke-http-status-308
クライアントエラーレスポンス
400 Bad Request このレスポンスは、不正な構文によりサーバがリクエストを理解できないことを示します。 HTTP/0.9 以降
401 Unauthorized リクエストされたリソースを得るために認証が必要です。これは 403 と似ていますが、この場合は認証を行うことが可能です。 HTTP/0.9 以降
402 Payment Required このレスポンスコードは、将来のために予約されています。このコードを作成した当初の目的はデジタル支払システムの使用でしたが、現時点では使用されていません。 HTTP/0.9 および 1.1
403 Forbidden クライアントにコンテンツのアクセス権がなく、サーバは適切なレスポンスの返信を拒否していることを示します。 HTTP/0.9 以降
404 Not Found サーバはリクエストされたリソースを発見できなかったことを示します。このレスポンスコードは Web で頻繁にみられるため、おそらくもっとも有名なコードでしょう。 HTTP/0.9 以降
405 Method Not Allowed リクエストメソッドはサーバにとって既知ですが、無効化されているか使用できないことを示します。2 つの必須メソッド GET および HEAD は無効化してはならず、またこのエラーコードを返すべきではありません。 HTTP/1.1 のみ
406 Not Acceptable このレスポンスは、Web サーバが サーバ駆動型コンテンツネゴシエーション を行った結果、ユーザエージェントから与えられた条件に合うコンテンツが見つからない場合に送信されます。 HTTP/1.1 のみ
407 Proxy Authentication Required これは 401 と似ていますが、プロキシサーバが認証を要求している点が異なります。 HTTP/1.1 のみ
408 Request Timeout このレスポンスはクライアントが以前にリクエストを行っていない、アイドル状態のコネクションにおいて一部のサーバが送信します。サーバは使用していないコネクションの終了を望むことを示します。このレスポンスは Chrome や IE9 など、閲覧を高速化するための HTTP 事前コネクション機能を用いる一部のブラウザでよく用いられます (バグ 634278 で、Firefox に同様の機能を実装する作業を追跡しています)。また、一部のサーバはこのメッセージを送らずにコネクションを閉じることに注意してください。 HTTP/1.1 のみ
409 Conflict このレスポンスは、リクエストがサーバの現在の状態と矛盾する場合に送られるでしょう。 HTTP/1.1 のみ
410 Gone このレスポンスは、リクエストされたコンテンツがサーバから削除されている場合に送られるでしょう。 HTTP/1.1 のみ
411 Length Required サーバは Content-Length ヘッダフィールドを要求するがリクエストで定義されていないために、サーバがリクエストを拒否したことを示します。 HTTP/1.1 のみ
412 Precondition Failed サーバ側で適合しない前提条件が、クライアント側のヘッダに含まれていることを示します。 HTTP/1.1 のみ
413 Request Entity Too Large リクエストの本体がサーバで定めている上限を超えていることを示します。サーバはコネクションを閉じるか、Retry-After ヘッダフィールドを返します。 HTTP/1.1 のみ
414 Request-URI Too Long クライアントによってリクエストされた URI が、サーバで扱える長さを超えていることを示します。 HTTP/1.1 のみ
415 Unsupported Media Type リクエストされたデータのメディア形式がサーバでサポートされておらず、サーバはリクエストを拒否したことを示します。 HTTP/1.1 のみ
416 Requested Range Not Satisfiable リクエスト内の Range ヘッダフィールドで指定された範囲を満たすことができないことを示します。指定した範囲が、目的の URI のデータサイズを超えている可能性があります。 HTTP/1.1 のみ
417 Expectation Failed このレスポンスコードは、Expect リクエストヘッダで指定された内容がサーバ側と適合しないことを示します。 HTTP/1.1 のみ
サーバエラーレスポンス
500 Internal Server Error サーバ側で処理方法がわからない事態が発生したことを示します。 HTTP/0.9 以降
501 Not Implemented リクエストメソッドがサーバでサポートされておらず、扱えないことを示します。サーバがサポートしなければならない (従って、このコードを返してはならない) メソッドは GETHEAD だけです。 HTTP/0.9 以降
502 Bad Gateway このエラーレスポンスは、リクエストの処理に必要なレスポンスを受け取るゲートウェイとして動作するサーバが不正なレスポンスを受け取ったことを示します。 HTTP/0.9 以降
503 Service Unavailable サーバはリクエストを処理する用意ができていないことを示します。一般的な原因は、サーバがメンテナンスや過負荷でダウンしていることです。このレスポンスとともに問題について説明する、ユーザにわかりやすいページを送信するべきであることに注意してください。このレスポンスは一時的な状況について用いられるべきであり、また可能であれば、サービスが復旧する前に Retry-After: HTTP ヘッダに予定時刻を含めるべきです。また、これら一時的な状況のレスポンスは通常キャッシュされるべきではないことから、Web 管理者はこのレスポンスとともに送られるキャッシュ関連のヘッダに注意しなければなりません。 HTTP/0.9 以降
504 Gateway Timeout このエラーレスポンスは、ゲートウェイとして動作するサーバが時間内にレスポンスを得られない場合に送られます。 HTTP/1.1 のみ
505 HTTP Version Not Supported リクエストで用いられた HTTP のバージョンがサーバでサポートされていないことを示します。 HTTP/1.1 のみ

 

ドキュメントのタグと貢献者

タグ: 
Contributors to this page: yyss
最終更新者: yyss,