PACファイル:リクエストがプロキシ経由か直接接続かを見分ける
PACの結果を接続先ごとの経路判断として読み、DIRECTへのフォールバックが確認される出口アドレスに与える影響を理解します。
PACファイルが別のサイトを正しくプロキシ経由にしていても、IP確認ページには直接接続のアドレスが表示される場合があります。IP確認ページ自体に適用される分岐を確認してください。
function FindProxyForURL(url, host) {
if (host === "example.com") {
return "PROXY 203.0.113.10:8080; DIRECT";
}
return "DIRECT";
}このスクリプトはexample.comにHTTPプロキシ、その次にDIRECTを提示します。それ以外のホストは明示的に直接接続なので、別ドメインのIP確認サイトではプロキシの分岐を試していません。使用前に文書用の接続先を意図したHTTPプロキシへ置き換えます。公開プロキシが方針に合う場合はHTTPプロキシ一覧から候補を選べます。
セミコロンは経路の候補を区切ります。DIRECTはプロキシなしの接続を許可し、選ばれると接続先はその直接経路の出口を見られます。プロキシ必須の方針を、プロキシ利用不可時にこのフォールバックを意図的に許すルールで実現することはできません。
候補の失敗をどう扱うかはブラウザーが判断し、失敗したプロキシを記憶する場合もあります。サイトがHTTPエラーを返すことは、プロキシに到達できないことと自動的に同じにはなりません。そのため、スクリプトの最初の候補だけでは実際の経路は確定できません。
PROXY IP:portは通常のHTTP待ち受け先を表します。対応していればCONNECTでHTTPSを運べるため、サイトがHTTPSという理由だけで別の接続先は不要です。また、使うのはブラウザーが渡すURL情報だけにしてください。HTTPSのパスやクエリーはPACの評価前に削られる場合があります。
意図した接続先に対する結果を評価し、同じルールが適用される新しいリクエストを送ります。対処を選ぶ前に、条件の誤一致、接続先への到達不能、許可された直接接続へのフォールバックを区別してください。