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 (レスポンス本文)

リソース(ファイル)の内容を含む。