リクエストヘッダをブラウザと同じにする場合の詳細を説明します。


■この設定にチェックを入れると、以下の動作を行います。

1.Remote-Host-Wp: 追加しない
2.X-Forwarded-For: 追加しない
3.Forwarded:  追加しない
4.Proxy-Connection: Connection:に修正
5.Pragma: no-cache  削除


■制限・注意など
(1) この設定をすると、サーバ側からは、ブラウザ直接か、プロキシ経由かの判断はできなくなりますが、 あくまでも、相手側には、接続元のIPアドレスは分かっていますので、悪意のある接続などを助長するものではありません。
(2) この動作はBJD2.1.4及びIE5.5xでのみ確認しております。

一般に、掲示板などで、クライアントから来たリクエストが、プロキシ経由で来たものかどうかを
判断して動作するものが有りますが、それができるのは、リクエストに含まれるヘッダの内容が、それぞれ違うものであるからです。

BJDは、ローカルで動作するプロキシであるという事から、BJDを経由したリクエストと、BJDの動作しているPC上でのブラウザのリクエストを同じにできる設定を追加しました。

以下、動作の概要について、説明します。


■クライアント(ブラウザ)のリクエスト

1 プロキシを使用しない場合

GET /index.html HTTP/1.1
Accept: */*
Accept-Language: ja
If-Modified-Since: Mon,04 Dec 2000 00:11:45 GMT; length=35
User-Agent: Mozilla/4.0(compatible; MSIE 5.5; Windows NT 5.0)
Host: ServerName
Connection: Keep-Alive

2 プロキシを使用する場合

GET http://ServerName/index.html HTTP/1.1
Accept: */*
Accept-Language: ja
If-Modified-Since: Mon, 04 Dec 2000 00:11:45 GMT; length=35
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Host: ServerName
Proxy-Connection: Keep-Alive
Pragma: no-cache

これらのヘッダの違いを見ても分かるように、クライアントから発行されるリクエストは
プロキシを使用する場合と、使用しない場合では、その内容が違います。


■プロキシサーバのリクエスト
クライアント(ブラウザ)からのリクエストを受けて、プロキシサーバが発行するリクエストは
次のようなものになります。

GET /index.html HTTP/1.1
Remote-Host-Wp: 192.168.0.1
X-Forwarded-For: 192.168.0.1
Forwarded: by BlackJumboDog (Version 2.x.x) for 192.168.0.1
Accept: */*
Accept-Language: ja
If-Modified-Since: Mon,04 Dec 2000 00:11:45 GMT; length=35
User-Agent: Mozilla/4.0(compatible; MSIE 5.5; Windows NT 5.0)
Host: ServerName
Proxy-Connection: Keep-Alive
Pragma: no-cache

これは、プロキシサーバが、クライアントからのリクエストを、通常のリクエストの形に書き直すと同時に 元々のリクエストが何処から発行されたものかの情報などをヘッダに埋め込む動作の結果です。


■「リクエストヘッダをブラウザと同じにする」の設定
プロキシサーバの設定で、「リクエストヘッダをブラウザと同じにする」に、チェックをすると、プロキシのリクエストを、 あたかも、BJDが動作しているPCで発行しているように通常のリクエストのように変更します。

GET /index.html HTTP/1.1
Accept: */*
Accept-Language: ja
If-Modified-Since: Mon,04 Dec 2000 00:11:45 GMT; length=35
User-Agent: Mozilla/4.0(compatible; MSIE 5.5; Windows NT 5.0)
Host: ServerName
Connection: Keep-Alive

このリクエストを受けた、サーバは、BJDを経由したリクエストと、 BJDが動作しているPC上でのリクエストの区別はできなくなります。