図6 WebブラウザでFTPサーバーへアクセスするときも実はプロキシまではHTTPを使う
プロキシ・サーバーは,クライアントから送られてきたHTTPリクエストを見て,FTPサーバーへのアクセスを要求していることがわかる。プロキシ・サーバーはIPアドレスを調べたあとで,目的のFTPサーバーへアクセスしてファイルを受信する。そしてクライアントはHTTPでこのファイルを受信する。

Webアクセス以外
プロトコルを理解して変換

 最後にHTTP以外のプロトコルを使う場合を見てみよう。例としてWebブラウザを使って,FTPサーバーからファイルをダウンロードする処理を考えてみよう(図6[拡大表示])。

 WebブラウザからFTPでアクセスするときは,WebブラウザのURL入力欄に,
ftp://companyA.co.jp/abc .lzh
のように入力する(1)。するとクライアントは,プロキシ・サーバーにリクエストを送るわけだが,ここでポイントとなるのは,このリクエストはFTPではなくHTTPであるということ(2)。具体的には,
GET ftp://companyA.co.jp /abc.lzh HTTP/1.1
というHTTPのリクエストをWebブラウザはプロキシ・サーバーへ送る。プロキシ・サーバーは,「ftp://」の部分を見て,「クライアントがFTPを要求している」ということがわかる。そのあとに続く「companyA.co.jp」はアクセス先のFTPサーバー,「/abc.lzh」は目的のファイルである。

 次にプロキシ・サーバーは,DNSサーバーにアクセスしてFTPサーバーのIPアドレスを求めて(3と4),目的のサーバーへFTPでアクセスする(5と6)。そして,FTPで受信したファイルを,HTTPを使ってクライアントへ返信する(7)。もし,FTPサーバーからディレクトリ一覧などのテキスト・データが返信された場合には,プロキシ・サーバーがHTMLデータに変換してクライアントへ返す。

 上記のように動くのは,Webブラウザに「FTPを使うときにプロキシ・サーバーを経由する」という設定がしてあるからである。

 HTTPでWebアクセスをしたときの設定方法を思い出してほしい。HTTPのときと同じように,FTPの項目にプロキシ・サーバーのアドレスとポート番号を入力すればよい。こうすれば,WebブラウザでFTPサーバーへアクセスするときに,プロキシ・サーバーを経由するようになる。Webブラウザのプロキシ設定で,FTPの欄にこれらの項目を入力するときは,「FTPを使ってアクセスするときには,必ず指定されたアドレスのポート番号にアクセスしなさい」という意味になる。

 なお,Internet ExplorerやNetscape Navigatorのプロキシ設定項目にはHTTPやFTP以外に,SSLSOCKS(ソックス),Gopher(ゴファ),WAIS(ウエイズ)がある。これらの設定項目にも適切な値を設定しておけば,FTPと同様にプロキシ・サーバーを経由してアクセスできる。このときのアクセスの流れも,FTPと同じである。

 つまり,クライアントとプロキシ・サーバーの間はHTTPを使って通信して,プロキシ・サーバーと目的のサーバーの間は,Webブラウザが指定するプロトコルを使って通信する。Webブラウザは,HTTPのリクエストを使ってプロキシ・サーバーへ依頼する要素を伝え,レスポンスを使って目的のデータを得ているのである。