図2-10 会社では一般的なプロキシ<BR>企業ネットワークでは,Webブラウザが直接外部のWebサーバーにアクセスすることは少ない。たいていは,プロキシ・サーバーを経由する。右はInternet Explorerの設定画面。
図2-10 会社では一般的なプロキシ<BR>企業ネットワークでは,Webブラウザが直接外部のWebサーバーにアクセスすることは少ない。たいていは,プロキシ・サーバーを経由する。右はInternet Explorerの設定画面。
[画像のクリックで拡大表示]
図2-11 プロキシ・サーバーを経由すると,プラウザからのリクエストの内容が変わる&lt;BR&gt;プロキシ・サーバー経由の場合,Webブラウザはリクエスト行にパス名だけではなく,URLすべてを書いたメッセージを送る。
図2-11 プロキシ・サーバーを経由すると,プラウザからのリクエストの内容が変わる<BR>プロキシ・サーバー経由の場合,Webブラウザはリクエスト行にパス名だけではなく,URLすべてを書いたメッセージを送る。
[画像のクリックで拡大表示]

プロキシによって変わる部分
大きく違うのはHTTPリクエストURLをまるごとプロキシに伝える

 会社でWebブラウザを使う場合,インターネット上のWebサーバーに直接アクセスするのではなく,プロキシ・サーバーを経由させることが多い(図2-10[拡大表示])。WebブラウザとWebサーバーの間にプロキシ・サーバーが入ると,これまで説明してきたWebアクセスのしくみが大きく変わる。プロキシ・サーバーによって変わる部分と変わらない部分を検証していこう。

メッセージはそのまま中継しない

 まずプロキシ・サーバーの役割を簡単に確認しておこう。プロキシ(proxy)とは英語で「代理」のこと。つまり,Webブラウザが送信したHTTPリクエストを受信して内容を解釈し,リクエストを作り直してWebサーバーへのアクセスを代行する。

 こうした特徴を生かして,プロキシ・サーバーはさまざまな用途に利用されている。例えば,キャッシングである。頻繁にアクセスするWebページのデータをためておき,次回以降はそれを直接ブラウザに返す。こうすれば,Webブラウザは素早くページを表示でき,インターネットとのやりとりも減らせる。

 また,インターネット側からはプロキシ・サーバーと通信しているように見えるので,社内のクライアントを隠して,セキュリティを向上させるといった用途もある。

リクエスト行のURIが変わる

 図2-10のように,プロキシ・サーバーを使うようにWebブラウザの設定を変えても,Webブラウザのふるまいは,あまり変わらないように見える。しかし,実はHTTPリクエストの内容は変化している。

 もっとも顕著に変わるのは,リクエストの最初の行(リクエスト行)に書かれるURIである。

 プロキシ・サーバーがない場合,Part1で見てきたように,URIはサーバー上のパス名だけになる。つまり,「/index.html」のようにスキーム名やドメイン名などは含まない。こうしたパスは相対パスと呼ばれる。

 一方,プロキシ・サーバーを使うと,スキーム名やドメイン名を含んだURIをステータス行に含めるようになる。「http://www.nikkeibp.co.jp/index.html」というような形で,こちらは絶対パスと呼ばれる(図2-11[拡大表示])。

プロキシがなければパス名だけでOK

 プロキシ・サーバーがない場合,WebブラウザはHTTPリクエストに含まれるURIを相対パスにしている。これは,リクエストがWebサーバー上に正しく到着すれば,あとはWebサーバー内のパスだけを伝えればすむからだ。

 Webブラウザは,アドレス欄に入力されたURLから,Webサーバーへのアクセス手段(スキーム名),Webサーバーのドメイン名などがわかる。これらの情報を使ってWebサーバーにHTTPリクエストを送信できる。

 いったんWebサーバーにHTTPリクエストを運んでしまえば,スキーム名やドメイン名は必要ない。だから,Webサーバーが実際に必要とするパス名だけでいい。

絶対パスでドメイン名も教える

 プロキシ・サーバーがある場合は,状況が違ってくる。プロキシ・サーバーは,URIが相対パスになっているHTTPリクエストをブラウザから受け取っても,それをどのWebサーバーに送ったらいいのかわからない。

 そこで,Webブラウザは最終目的地のWebサーバーにアクセスするのに必要な情報もプロキシ・サーバーに伝えるため,URIをスキーム名やドメイン名を含んだ絶対パスの形にする。

 このHTTPリクエストを受け取ったプロキシ・サーバーは,リクエスト中のURIからドメイン名を取り出し,WebサーバーのIPアドレスを調べて,HTTPリクエストを送り出す。

 ただし,プロキシ・サーバーがWebサーバーに届けるHTTPリクエストは,URIが相対パスに書き換わる。つまり,プロキシ・サーバーはリクエストのURIの部分を作り直している。

 このほか,プロキシ・サーバーはさまざまなヘッダー情報を削除したり,追加したりしてから,WebサーバーにHTTPリクエストを送ることもある。HTTPリクエストのヘッダー情報には,プラウザの種類やバージョン,以前に開いたWebページのURLなど,さまざまな情報が含まれている。これらをプロキシ・サーバーで取り除けば,企業ネットワークから外に出ていくHTTPリクエストから,社内のクライアントの情報が漏れるのを防げる。

◆       ◆       ◆

 ここまで読み通せば,今どきのWebアクセスの実際を理解したと言えるだろう。このPart2は,Webアクセスの個々のシーンを解き明かしただけではない。実際のWebアクセスのメカニズムを理解するために不可欠なしくみも網羅している。それは,

●データの種類の伝え方

●2種類ある認証のしくみ

●Webサーバーによるリクエスト・ヘッダーの利用例

●プロキシ・サーバー経由でHTTPリクエストが変わる点

である。こうした知識が自然と身についているはずだ。