このページの本文へ

WWW完全制覇 第6回

HTTPとCookie、SSLを理解しよう

ブラウザとサーバは何をやりとりしているの?

2009年06月09日 09時00分更新

文● 遠藤哲、中塚寛幸、編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

リソースを送り届けるサーバからのレスポンス

 リクエストを受けたサーバが要求されたリソースを見付けると、それをWebブラウザに送信することになる。

  1. 指定されたHTMLファイルを送る。Webページには多くの画像やアニメーションが貼り込まれているほか、別のHTMLファイルが入れ子になっていることもある。これらはHTMLファイルにタグとして入れる場所や大きさが指定されている
  2. WebブラウザがHTMLファイルを受け取ると、取得してきたHTMLファイルを解釈し、タグで指定されている画像やその他のリソースを調べる
  3. HTMLファイルの中にある画像ファイルや他のリソースを同じくHTTPで取得する。ただ、リンクが張られているWebサーバは同一のサーバではないことも多いので、この場合はさまざまなサーバに対して、HTTPのセッションを確立し、ファイルを取得する
  4. 結果として、取得した複数のリソースをレンダリングして、1つのまとまったWebページとしてユーザーに提供する

 レスポンスのメッセージもリクエストと同様に「レスポンス行」と、メッセージヘッダが用意されている。

 レスポンス行には、HTTPのバージョンと状態コード、そして状態の理由が書き込まれる。

 このうち状態コードとは、送信状態を3桁の数字で表したもので、200番台は成功のステータス、400番台はクライアントエラー、500番台はサーバエラーを表わす。200番台はリソースをきちんと送信できたという意味なので、取得したリソースが表示されるが、500番台はエラーメッセージとしてWebブラウザ上に表示されることがある。たとえば「505 Internal Server Error」などのエラーは見たことがあるかもしれない。また、指定したリソースがサーバ上にないことを示す「404 Not Found」もよく知られたメッセージである。

 一方、サーバ側からのメッセージヘッダは、サーバ名(Server)や生成されてからの時間(Age)、ユーザー認証の要求(WWW-Authenticate)などがある。また、レスポンスの目的であるコンテンツの実体(エンティティ)の状態を表示する「エンティティヘッダフィールド」と呼ばれるフィールドもある。

 エンティティのデータ形式は、通常のHTMLファイルであれば「Content-Type:text/html」と指定されるが、Wordファイルだと「Content-Type:application/msword」となる。この規格はテキスト以外のデータを送受信するために作られた電子メールの「MIME(Multi Purpose Internet Mail Extension)」をそのまま採用している。

 そして、こうしたレスポンス行やメッセージヘッダのあとに、本命のコンテンツが挿入される。実際のコードを開くと、HTMLやXMLなどのタグが記載されている。

(次ページ、「HTTP1.1を用いて効率的な転送を」に続く)


 

カテゴリートップへ

この連載の記事