Lesson2では,WebブラウザがHTTPを使ってWebページを表示するまでの流れを見てみよう。Webアクセスの裏側で,WebブラウザとHTTPがどのような動作をしているのかに注目する。

HTTPを使うことが明記されている

 HTTPは,要求(リクエスト)と応答(レスポンス)という二つのメッセージで成り立っている。WebブラウザからWebサーバー・ソフトに向かうのがHTTPリクエストで,そのリクエストに対する応答がHTTPレスポンスになる。Webアクセスは,このやりとりを繰り返すことで実現している(図2-1上)。

図2-1●要求と応答を繰り返して必要なデータを集める
図2-1●要求と応答を繰り返して必要なデータを集める
HTTPで使われるメッセージは,要求(HTTPリクエスト)と応答(HTTPレスポンス)の二つ。この二つのやりとりを繰り返して必要なデータを集める。
[画像のクリックで拡大表示]

 ユーザーがWebブラウザのURL欄に「http://www.exampleA.co.jp/index.html」と入力して,Webアクセスを実行したときの流れを詳しく追ってみよう(図2-1中央)。

 URLとは,インターネット上にあるデータの在りかを示すための情報である。先頭の「http」は,スキームと呼ばれ,Webブラウザがデータにアクセスするための手段(プロトコル)を示している。ここに「http」とあるのは,まさにHTTPを使ってデータをやりとりすることを表している。続く「www.exampleA.co.jp」はホスト名,つまりWebサーバーの名前を示す。最後の「/index.html」はパス名で,Webサーバー内のデータの在りかを示している。

要求と応答を繰り返す

 ユーザーがこのアドレスをURL欄に入力してリターン・キーを押すと,Webブラウザは,www.exampleA.co.jpという名前のサーバーにあるindex.htmlというデータをHTTPリクエストで要求する。すると,Webサーバーからindex.htmlのデータがHTTPレスポンスで返って来る。

 WebブラウザはこのHTMLの内容を上から順番に解析していく。そして,解析の途中で別のURLを見つけたら,そのURLで示されたデータを取りにいく。例えば,HTMLデータの中に「http://www.exampleA.co.jp/apple.gif」という画像データのURLが書かれていたとする。するとWebブラウザは,再びwww.exampleA.co.jpというサーバーにHTTPリクエストを送信し,apple.gifというデータを要求する。するとwww.exampleA.co.jpで動くWebサーバー・ソフトから,apple.gifという画像データがHTTPレスポンスで返ってくる。

複数のサーバーに要求することも

 Webブラウザは一つの画面を表示するのに,必ずしも同じサーバーにHTTPリクエストを送り続けるとは限らない。

 例えば,ニュース・サイトの広告画像は,ニュース・サイトのWebサーバーではなく,広告会社が用意した別のサーバーに蓄えられているケースが多い。この場合Webブラウザは,ニュースで使われている画像データはニュース・サイトのWebサーバーから取ってきて,広告画像は広告会社のWebサーバーから取ってくる。

 図2-1の例では,HTMLデータの中に「http://www.exampleB.co.jp/koukoku.gif」という別サーバーのURLが記述されている。するとWebブラウザは,www.exampleB.co.jpという名前のWebサーバーに対して,HTTPでkoukoku.gifというデータをリクエストする。するとwww.exampleB.co.jpのWebサーバー・ソフトからkoukoku.gifという画像データがHTTPレスポンスで返って来る。

 Webブラウザは,こうして集めたデータをHTMLデータに書かれている指示通りに組み立てて,ウインドウ内に表示するのである。