社内のパソコンからインターネット上のWebサーバーにアクセスするときは,社内のパソコンに代わってWebアクセスを実行する「プロキシ・サーバー」を使うケースが多い。Lesson4では,プロキシ・サーバーを使ったときのHTTPの流れを押さえよう。

社内ネットワークで使うプロキシ

 プロキシ・サーバーは,WebブラウザのHTTPリクエストを受け取って,パソコンの代わりに自らWebサーバーにアクセスする機能を持つサーバーである(図4-1)。

図4-1●HTTPのやりとりを代理するプロキシ・サーバー
図4-1●HTTPのやりとりを代理するプロキシ・サーバー
社内ネットワークではプロキシ・サーバーが使われることが多い。WebブラウザのHTTPリクエストのあて先をプロキシ・サーバーにする。するとプロキシ・サーバーがHTTPのやりとりを代理で実行する。  [画像のクリックで拡大表示]

 社内ネットワークでプロキシ・サーバーを使う理由は二つある。

 一つは,Webアクセスの高速化のため。プロキシ・サーバーは,パソコンに代わってアクセスしたWebページのデータを自身のキャッシュに保存しておく。そして,社内のパソコンが再びデータを要求したときは,保存しておいたデータを返信する。こうすれば,パソコンへのレスポンスが速くなる。また,インターネットへ出て行くトラフィックを少なくすることにもつながる。

 もう一つの理由は,セキュリティを高めるため。プロキシ・サーバーを経由してWebアクセスをすると,直接インターネット上のWebサーバーにアクセスするのはプロキシ・サーバーになる。つまり,Webサーバーから見ると,プロキシ・サーバーしか見えなくなり,社内にあるパソコンの姿は見えない。これはインターネットから社内のパソコンを隠すことになり,セキュリティの向上になる。

HTTPのあて先が変わる

 プロキシ・サーバーを経由したときとしないときのWebアクセスの流れを比較してみよう(図4-2)。

図4-2●プロキシ・サーバーを使ったときのWebアクセスの流れ
図4-2●プロキシ・サーバーを使ったときのWebアクセスの流れ
Webブラウザは,HTTPリクエストを使って,プロキシ・サーバーにアクセス先のホスト名やパス名を伝える。プロキシ・サーバーはそれらの情報に従って,代理でHTTPのやりとりを実行する。  [画像のクリックで拡大表示]

 Lesson3の図3-1では省略していたが,通常のWebアクセスは,ユーザーがURL欄にアドレスを入力すると,WebブラウザがDNSサーバーに名前解決の要求を出して目的のWebサーバーのIPアドレスを調べる。こうした名前解決の処理を経た後に,調べたIPアドレスあてにHTTPリクエストを送る。このとき,HTTPリクエストのリクエスト行には,「/index.html」といったパス名のみが記述される。

 これに対してプロキシ・サーバーを使ったときのWebアクセスは,WebブラウザのHTTPのあて先はプロキシ・サーバーになる。このとき,HTTPリクエストには,「http://www.example.co.jp/index.html」のように書き込まれる。つまり,パス名だけでなく,スキーム名(http)やホスト名(www.example.co.jp)も記述されるわけだ。

メッセージの内容も変わる

 この理由は,Webブラウザがプロキシ・サーバーにアクセス先の情報を伝える必要があるからである。パス名だけでは,プロキシ・サーバーはどこのWebサーバーにどんなプロトコルでアクセスしていいのかわからない。Webブラウザはこれらの情報をプロキシ・サーバーに伝えて,「www.example.co.jpのサーバーにアクセスして,/index.htmlをHTTPで取ってきて下さい」と依頼しているのである。

 WebブラウザからのHTTPリクエストを受け取ったプロキシ・サーバーは,DNSによる名前解決を実施して目的のWebサーバーのIPアドレスを調べる。そして,調べたアドレスあてにHTTPリクエストを送る。このときのHTTPリクエスト・メッセージのステータス行には,「/index.html」といったパス名のみが記述される。

 プロキシ・サーバーを使うと,HTTPメッセージをやりとりするあて先や,メッセージの内容が変わっていることがわかるだろう。