HTTP
HTTPレスポンス
サーチ…
パラメーター
ステータスコード | 理由フレーズ - 説明 |
---|---|
100 | 続行 - クライアントは、複数の部分からなる要求の次の部分を送信する必要があります。 |
101 | スイッチングプロトコル - この通信で使用されるプロトコルのバージョンまたはタイプがサーバーによって変更されています。 |
200 | OK - サーバーはクライアントの要求を受信して完了しました。 |
201 | Created - サーバーは要求を受け入れ、新しいリソースを作成しました。これはLocation ヘッダーのURIの下で使用できます。 |
202 | Accepted - サーバーはクライアントの要求を受信して受け入れましたが、まだ処理を開始または完了していません。 |
203 | 権限のない情報 - サーバーは元のサーバーで利用可能な情報のサブセットまたはスーパーセットである可能性のあるデータを返しています。主にプロキシによって使用されます。 |
204 | No Content - レスポンスのボディがない場合に200(OK)の代わりに使用されます。 |
205 | コンテンツのリセット - 204(No Content)と同じですが、クライアントはアクティブなドキュメントビューを再読み込みする必要があります。 |
206 | 部分的な内容 - クライアントがRange ヘッダーを要求したときに200(OK)の代わりに使用されます。 |
300 | 複数の選択 - 要求されたリソースは複数のURIで利用可能であり、クライアントは要求をメッセージ本文のリストに指定されたURIにリダイレクトする必要があります。 |
301 | Permanently Moved - 要求されたリソースはこのURIで利用できなくなり、クライアントはこれと今後のすべての要求をLocation ヘッダーで指定されたURIにリダイレクトする必要があります。 |
302 | Found - リソースは一時的に別のURIの下にあります。このリクエストは、 Location ヘッダーのURIへのユーザーの確認の際にリダイレクトする必要がありますが、今後のリクエストは変更しないでください。 |
303 | その他 - 302(Found)とよく似ていますが、指定されたURIにリダイレクトするためのユーザー入力は必要ありません。提供されたURIは、GET要求で取得する必要があります。 |
304 | 変更されていない - クライアントはIf-Modified-Since または同様のヘッダーを送信しました。その時点以降、リソースは変更されていません。クライアントはリソースのキャッシュされたコピーを表示する必要があります。 |
305 | プロキシを使用する - 要求されたリソースは、 Location ヘッダーフィールドで指定されたプロキシを介して再度要求されなければなりません。 |
307 | 一時リダイレクト - 302(Found)と同じですが、HTTP 1.0クライアントは307応答をサポートしていません。 |
400 | 不正なリクエスト - クライアントは構文エラーを含む不正なリクエストを送信しましたが、リクエストを修正してそれを修正してからそれを繰り返す必要があります。 |
401 | Unauthorized - 要求されたリソースは認証なしで利用できません。クライアントは、認証の詳細を提供するためにAuthorization ヘッダーを使用して要求を繰り返す場合があります。 |
402 | 支払い必須 - コンテンツを閲覧するためにユーザーの購読を必要とするアプリケーションで使用するための予約済み、未指定のステータスコード。 |
403 | 禁止されている - サーバーは要求を認識しますが、既存のアクセス制御のために要求を実行することを拒否します。この要求は繰り返さないでください。 |
404 | 見つからない - 要求されたURIと一致するこのサーバーで利用可能なリソースがありません 。アクセス制御の詳細が表示されないように、403の代わりに使用できます。 |
405 | メソッドが許可されていません - リソースが要求メソッド(HTTP動詞)をサポートしていません。 Allow ヘッダーには受け入れ可能な要求メソッドが一覧表示されます。 |
406 | Not Acceptable - リソースには、要求で送信された受け入れヘッダーに違反する特性があります。 |
407 | プロキシ認証が必要 - 401(Unauthorized)と似ていますが、クライアントが最初に中間プロキシで認証する必要があることを示します。 |
408 | Request Timeout - サーバーはクライアントからの別の要求を期待していましたが、受け入れ可能な時間枠内には何も要求されませんでした。 |
409 | Conflict - リソースの現在の状態と競合しているため、要求を完了できませんでした。 |
410 | Gone - 404(Not Found)と同様ですが、永久的な削除を示します。転送先アドレスは使用できません。 |
411 | Length Required - クライアントは有効なContent-Length ヘッダーを指定しておらず、サーバーがこの要求を受け入れる前にそれを行わなければなりません。 |
412 | Precondition Failed - クライアントが送信した条件付きヘッダーで指定されたすべての条件でリソースを使用できません。 |
413 | 要求エンティティが大きすぎる - サーバーは現在、クライアントが送信した長さのメッセージ本文を処理できません。 |
414 | Request-URIが長すぎる - Request-URIがサーバーが解釈しようとするよりも長いため、サーバーは要求を拒否しています。 |
415 | サポートされていないメディアタイプ - サーバーは、クライアントによって指定されたMIMEまたはメディアタイプをサポートしておらず、この要求を処理できません。 |
416 | Requested Range Not Satisfiable - クライアントがバイト範囲を要求しましたが、サーバーはその仕様にコンテンツを提供できません。 |
417 | Expectation Failed - クライアントは、サーバーが満たすことができないExpect ヘッダーの制約を指定しました。 |
500 | 内部サーバーエラー - 予期しない状態またはエラーが発生したため、サーバーはこの要求を完了できませんでした。 |
501 | 実装されていない - サーバーは要求を完了するために必要な機能をサポートしていません。通常、 どのリソースでもサポートされていない要求メソッドを示すために使用されます。 |
502 | Bad Gateway - サーバーがプロキシであり、この要求の処理中にアップストリームサーバーから無効な応答を受信しました。 |
503 | Service Unavailable - サーバーが高負荷状態またはメンテナンス中で、現在この要求を処理する能力がありません。 |
504 | ゲートウェイタイムアウト - サーバーはプロキシであり、タイムリーにアップストリームサーバーからの応答を受信しませんでした。 |
505 | サポートされていないHTTPバージョン - サーバーは、クライアントが要求したHTTPプロトコルのバージョンをサポートしていません。 |
基本的な応答形式
HTTPサーバーが整形式のHTTP要求を受信すると、要求に含まれる情報を処理してクライアントに応答を返さなければなりません。単純なHTTP 1.1レスポンスは、次のように見えるかもしれません。多くの場合、いくつかのヘッダーフィールドが続きます。
HTTP/1.1 200 OK \r\n
HTTP/1.1 404 Not Found \r\n
HTTP/1.1 503 Service Unavailable \r\n
シンプルなHTTP 1.1レスポンスは次の形式をとります:
HTTP-Version Status-Code Reason-Phrase CRLF
要求と同様に、 HTTP-Version
は使用中のHTTPプロトコルのバージョンを示します。 HTTP 1.1では常にHTTP/1.1
という文字列でなければなりません。
Status-Code
は、クライアントの要求のステータスを示す3桁のコードです。このコードの最初の桁はステータスクラスで、ステータスコードを5つのカテゴリのレスポンス[1]のいずれかに配置します。
-
1xx
情報 - サーバーが要求を受信し、処理が続行中です。 -
2xx
成功 - サーバーが要求を受け入れて処理しました -
3xx
リダイレクション - 要求を完了するためにクライアント側でさらにアクションが必要 -
4xx
Client Errors - クライアントが不正な形式の要求を送信したか、または実行できませんでした -
5xx
サーバーエラー - 要求は有効でしたが、サーバーは現在それを実行できません
Reason-Phrase
は、ステータスコードの簡単な説明です。たとえば、コード200
はOK
理由フレーズがあります。コード404
は、 Not Found
フレーズを有する。理由フレーズの完全なリストは、パラメータ、以下、またはHTTP仕様で利用できます。
この行は通常は\r\n
表されるキャリッジリターンラインフィードのペアで終わります。
追加ヘッダー
HTTPリクエストと同様に、HTTPレスポンスには、レスポンスを変更または拡張するための追加ヘッダーが含まれている場合があります。
使用可能なヘッダーの完全なリストは、仕様の§6.2で定義されています 。最も一般的に使用されるヘッダーは次のとおりです。
-
Server
User-Agent
要求ヘッダーのように機能します。 -
Location
:リダイレクト先のURIを示す201および3xxのステータス応答で使用されます。そして -
ETag
は、クライアントが応答をキャッシュできるように、このバージョンの返されたリソースの一意の識別子です。
レスポンスヘッダーはステータス行の後に来て、 リクエストヘッダーは次のように形成されます。
Name: Value CRLF
Name
は、 ETag
やLocation
などのヘッダーName
提供し、 Value
は、サーバーがそのヘッダーに設定する値を提供します。行はCRLFで終わります。
ヘッダーの応答は次のようになります。
HTTP/1.1 201 Created \r\n
Server: WEBrick/1.3.1 \r\n
Location: http://example.com/files/129742 \r\n
メッセージ本文
要求本文と同様に、HTTP応答にはメッセージ本文が含まれている場合があります。これにより、クライアントが処理する追加データが提供されます。特に、整形式のGET要求に対する200 OK応答は、常に要求されたデータを含むメッセージ本文を提供する必要があります。 (存在しない場合、204 No Contentはより適切な応答です)。
すべてのヘッダーの後にメッセージ本文が含まれ、CRLFが2つ続きます。要求に関しては、長さはバイトでContent-Length
ヘッダーで指定する必要があります。したがって、GET要求に対する正常な応答は、次のようになります。
HTTP/1.1 200 OK\r\n
Server: WEBrick/1.3.1\r\n
Content-Length: 39\r\n
ETag: 4f7e2ed02b836f60716a7a3227e2b5bda7ee12c53be282a5459d7851c2b4fdfd\r\n
\r\n
Nobody expects the Spanish Inquisition.