状況コードおよび理由句

クライアントに送信される HTTP 応答では、状況コード (3 桁の数字) にコードの意味を要約した理由句 (状況テキストとも呼ばれます) が伴っています。 これらの項目は、応答の HTTP バージョンと共に応答の最初の行に配置されるので、その行が状況表示行であることが分かります。

状況コードは数字の範囲で分類され、コードの各クラスの基本的な意味は同じです。
  • 100 から 199 までの範囲は、通知として分類されます。
  • 200 から 299 までは正常終了です。
  • 300 から 399 まではリダイレクトです。
  • 400 から 499 まではクライアント・エラーです。
  • 500 から 599 まではサーバー・エラーです。
ある範囲を全体として記述する場合は、「1xx」、「2xx」といったように名前を付けることができます。 HTTP プロトコル仕様では 600 以上の状況コードは定義されていません。

HTTP/1.0 および HTTP/1.1 仕様で定義されている状況コードは、各範囲にわずかしかありません。 HTTP/1.1 仕様では、HTTP/1.0 仕様よりも多くの状況コードが使用されます。

HTTP 仕様で定義されている理由句 (例えば、「Not Found (未検出)」や「Bad Request (不正な要求)」) が推奨されていますが、これらはオプションです。 HTTP/1.1 仕様では、各状況コードの理由の句は、ローカルの同等句と置き換えることができると 記述されています。

200 (OK) 状況コードは、Web クライアントが要求した全リソースを提供する、通常応答に使用されます。 それ以外のほとんどの状況コードは、要求の完遂の妨げとなるエラーが存在している状況、またはクライアントがその要求を正常に完了するために、何か別のことをする必要がある状況で使用されます。このような状況としては、例えばリダイレクト URL をたどる、要求を修正してその要求をサーバーで受け入れ可能にする、などがあります。

応答の HTTP ヘッダー、応答ボディの HTTP ヘッダー、またはその両方の HTTP ヘッダーで、クライアントに対する追加の指示および情報を提供することができます。 HTTP 仕様には、各状況コードを含む応答の内容に対する要件および提案が含まれています。 これらの要件で指定されている内容は以下のとおりです。
  • 応答で使用する必要のある、または使用することのできる HTTP ヘッダー。 例えば、状況コード 405 (Method not allowed (メソッドが許可されていません)) を使用する場合は、Allow ヘッダーを使用して、許可されている メソッドを示します。
  • 応答ボディを使用する必要があるか、そうでないか。 例えば、メッセージ・ボディに状況コード 204、205、および 304 を含めることはできません。
  • 応答ボディが使用される場合は、その応答ボディで提供できる情報はどのようなものか。 例えば、リダイレクトのメッセージ・ボディで、リダイレクト URL のハイパーリンクを提供することができます。

状況コードの意味および正しい使用方法についての詳細は、ご使用の HTTP の仕様書を参照してください。 HTTP 仕様について詳しくは、 HTTP プロトコル を参照してください。