社内のパソコンからインターネット上のWebサーバーにアクセスするときは,社内のパソコンに代わってWebアクセスを実行する「プロキシ・サーバー」を使うケースが多い。Lesson4では,プロキシ・サーバーを使ったときのHTTPの流れを押さえよう。
社内ネットワークで使うプロキシ
プロキシ・サーバーは,WebブラウザのHTTPリクエストを受け取って,パソコンの代わりに自らWebサーバーにアクセスする機能を持つサーバーである(図4-1)。
図4-1●HTTPのやりとりを代理するプロキシ・サーバー 社内ネットワークではプロキシ・サーバーが使われることが多い。WebブラウザのHTTPリクエストのあて先をプロキシ・サーバーにする。するとプロキシ・サーバーがHTTPのやりとりを代理で実行する。 [画像のクリックで拡大表示] |
社内ネットワークでプロキシ・サーバーを使う理由は二つある。
一つは,Webアクセスの高速化のため。プロキシ・サーバーは,パソコンに代わってアクセスしたWebページのデータを自身のキャッシュに保存しておく。そして,社内のパソコンが再びデータを要求したときは,保存しておいたデータを返信する。こうすれば,パソコンへのレスポンスが速くなる。また,インターネットへ出て行くトラフィックを少なくすることにもつながる。
もう一つの理由は,セキュリティを高めるため。プロキシ・サーバーを経由してWebアクセスをすると,直接インターネット上のWebサーバーにアクセスするのはプロキシ・サーバーになる。つまり,Webサーバーから見ると,プロキシ・サーバーしか見えなくなり,社内にあるパソコンの姿は見えない。これはインターネットから社内のパソコンを隠すことになり,セキュリティの向上になる。
HTTPのあて先が変わる
プロキシ・サーバーを経由したときとしないときのWebアクセスの流れを比較してみよう(図4-2)。
図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メッセージをやりとりするあて先や,メッセージの内容が変わっていることがわかるだろう。