HTTP Response (レスポンス)
HTTP Response messages (レスポンスメッセージ)
サーバーはリクエストを受け取ると、次のようなレスポンスメッセージを返す。
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2014 16:06:23 GMT
Server: Apache/1.3.22 (Unix) (Red-Hat/Linux)
Last-Modified: Sun, 07 Dec 2013 12:34:18 GMT
ETag: "1dba6-131b-3fd31e4a"
Accept-Ranges: bytes
Content-Length: 4891
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
<!DOCTYPE html>
<html>
:
</html>
レスポンスメッセージは、レスポンス行(状態行)、HTTP レスポンスヘッダー、ヘッダーの終わりを意味する空行、HTTP 本文で構成される。
改行コードは Windows 形式の CR LF("\r\n") である。最初の行にはリクエスト行またはレスポンス行があり、ヘッダーは複数行、空行は 1 行、メッセージボディは複数行である。
Start line (レスポンス開始ライン)
HTTP レスポンスの開始ライン(状態ライン)には次の 3 つの要素がある。
- HTTP プロトコルバージョン(HTTP リクエストメッセージと同じ)
- Response Status Code(レスポンス状態コード)
- 状態文字列
レスポンス開始ラインは次の形式で表示される。
[HTTP プロトコルバージョン] [レスポンス状態コード] [状態文字列]
状態文字列は OK や Not Found のような状態番号の意味と詳細を補うメッセージを返す。
Response Status Code(レスポンス状態コード)と状態文字列
HTTP/1.1 の状態コード定義は RFC 2616 に規定されており、簡単にまとめると次のとおりである。
| レスポンスコード | 意味 | 説明 |
|---|---|---|
| 1xx | Informational | 情報提供 |
| 2xx | Successful | 成功レスポンス |
| 3xx | Redirection | 追加作業(リダイレクト) |
| 4xx | Client Error | クライアント側エラー |
| 5xx | Server Error | サーバー側エラー |
1xx、2xx、3xx コードはサーバーと User Agent 間の状態を表すため、一般ユーザーがその内容を見ることは少ないが、4xx、5xx コードは一般ユーザーもよく目にする内容である。
| レスポンスコード | 意味 | 説明 |
|---|---|---|
| 100 | Continue | クライアントから一部のリクエストを受け取り、残りの情報を続けて要求する。 |
| 101 | Switching protocols | プロトコル切り替え。 |
| 200 | OK | リクエストが正常に実行された。 |
| 201 | Created | リクエストが成功し、サーバーが新しいリソースを作成した。 |
| 202 | Accepted | Web サーバーがリクエストを受け付けたが、まだ処理していない。 |
| 204 | No content | サーバーがリクエストを正常に処理したが、コンテンツを提供しない。 |
| 206 | Partial content | サーバーが GET リクエストの一部だけを正常に処理した。 |
| 301 | Moved permanently | 要求したデータが変更後の別 URL に移動した。 |
| 302 | Found temporarily | 要求したデータを一時 URL で見つけた。 |
| 304 | Not modified | 更新されておらず、ローカルキャッシュ情報を利用した。 |
| 400 | Bad request | リクエストが不正である。 |
| 401 | Unauthorized | 認証されていない。 |
| 403 | Forbidden | アクセスが許可されていない。 |
| 404 | Not found | 要求したページがない。 |
| 405 | Method not allowed | 許可されていない HTTP Method を使用した。 |
| 408 | Request timeout | リクエストがタイムアウトした。 |
| 500 | Internal server error | サーバー内部エラー。 |
| 502 | Bad Gateway | ゲートウェイが不正である。 |
| 503 | Service unavailable | サービス提供不可。 |
| 504 | Gateway timeout | ゲートウェイがタイムアウトした。 |
| 505 | HTTP version not supported | その HTTP バージョンはサポートされていない。 |
HTTP Header (レスポンスヘッダー)
レスポンスヘッダーには次の 3 つの種類がある。
| ヘッダータイプ | 説明 | 例 |
|---|---|---|
| レスポンスヘッダー | レスポンス本文のデータとは関係しないヘッダー | - Location |
| 一般ヘッダー | 取得するリソース | - Date - Cache-Control |
| エンティティヘッダー | レスポンス本文に適用 | - Content-Type - Content-Length - Expires |
HTTP Body (レスポンス本文)
リソース(ファイル)の内容を含む。