図2 Webブラウザの通信機能
まずユーザーが入力するか,リンク先として指定されているURLを解析する((1)~(3))。必要に応じて目的のWebサーバーのIPアドレスを調べたのち((4)’),Webサーバーと接続してHTTPのリクエスト・メッセージを送る((5))。

通信機能 ―― 賢い運び屋
URLを分解してリクエストを送る

 Webブラウザが備える通信機能の役割は,HTTPを処理することだ。

URLを三つに分割

 まずは,リクエスト・メッセージを送る仕事からだ。通常,Webブラウザがリクエスト・メッセージを送るきっかけになるのは,ユーザーがURLを入力したり,Webブラウザ上のリンク部分をクリックしたときである。このとき,Webブラウザの通信機能には,アクセス先のURLが通知される。

 ユーザーが入力したり,リンク先として指定されたURLは,三つの要素に分けられる。それはプロトコル名,ドメイン名,およびパス名である。Webブラウザの最初の仕事は,このURLを三つに分割することなのである(図2[拡大表示])。例えば,日経NETWORKのURLだが,

http://nnw.nikkeibp.co.jp/nnw/index.html

のうち,プロトコル名は「http」,ドメイン名は「nnw.nikkeibp.co.jp」,パス名は「/nnw/index.html」と,Webブラウザが分割する。

個別に処理し,HTTPが再びまとめる

 Webブラウザは,これらをまったく別々に処理する。

 プロトコル名は,サーバーと通信するためのプロトコルを決めるために使う。パソコン用Webブラウザの多くは,HTTPだけでなく,FTPなどのプロトコルにも対応しており,どのプロトコルを使うかが決まらないと,サーバーと通信を始められないからだ。

 一方,ドメイン名の部分は,接続先WebサーバーのIPアドレスを探すために利用する。WindowsやUNIXなどの場合,DNSサーバーへアクセスしてドメイン名からIPアドレスを調べるソフトウエア(リゾルバと呼ぶ)は,TCP/IP処理ソフトの一部として,OSが標準で備えている。そこで,Webブラウザはこのリゾルバへ検索処理を依頼する。すると,リゾルバからドメイン名に対するIPアドレスが返ってくる。

 利用するプロトコルと接続先WebサーバーのIPアドレスがわかったら,いよいよ通信を始める。HTTPを使う場合は,リクエスト・メッセージを作成することになる。通常は,先ほど分解したパス名を使って,最初の1行目に

GET /nnw/index.html HTTP/1.0

と記述し,2行目以降はWebブラウザにあらかじめ設定されている情報(例えばWebブラウザの名称やバージョン)をヘッダーとして書き込む。この書式はHTTPの規格で決まっているので,その規格通りに記述するのが,Webブラウザの仕事である。

 そして最後に,作成したリクエスト・メッセージを,OSのTCP/IPソフトを介してWebサーバーへ送信する。