PAC是Proxy Auto Config的缩写,用于自动配置浏览器的代理服务器。PAC文件一般命名为"proxy.pac"。
该文件实质上是一个入口函数为FindProxyForURL(url, host)
的JavaScript件。
// File: proxy.pac function FindProxyForURL(url, host) { if (shExpMatch(url,"*.example.com/*")) { return "SOCKET proxy.example.com:8888"; } if (isInNet(host, "192.168.1.0", "255.255.255.0")) { return "DIRECT"; } return "PROXY proxy.example.com:8080; DIRECT"; }
PROXY host:port
: 指定代理服务器的地址和端口SOCKS host:port
: SOCKET代理服务器DIRECT
: 直接连接,不使用代理shExpMatch
函数用于统配符匹配isInNet
用户网络地址判断PAC文件可以是用户手工指定的,也可是通过WPAD(Web Proxy Auto Discovery Protocol)自动配置的。
对于WPAD(网络代理自发现协议),浏览器通过DHCP和DNS的查询来搜索PAC文件的位置。