名称 wpad 解析到了预期的机器。这固然让人安心,但这只是开始。浏览器仍必须从该机器请求文件并收到 PAC 脚本。

在 Web 服务器的访问日志中能找到有用的线索:客户端请求了 /wpad.dat,却收到了 HTTP 404。手动打开的 PAC 网址可能使用了另一个主机名。即使两个名称指向同一台服务器,它们也可能选中不同的虚拟主机。

追踪客户端实际发出的请求

检查发现过程所选的具体网址、HTTP Host 的值、路径以及响应。在普通浏览器标签页中打开一个方便的 PAC 网址,并不能证明自动发现请求的就是那个网址。

如果同时期望短名称和完全限定名称,请让目标 Web 主机有意识地处理这些名称。确认 /wpad.dat 映射到正确的文件,而不是默认文档根目录或无关应用。

提供脚本,而不是错误页面

不仅要检查响应状态,还要检查响应正文。登录页、带品牌的错误文档或重定向在手动查看时可能看似合理,但不是解析器所期望的 PAC 脚本。Chromium 记录了严格的PAC 下载要求,其中包含 HTTP 200 响应。

只有在投递成功之后之后,调试 FindProxyForURL() 才有意义。修改它的主机名规则无法修复那个让浏览器没能取得脚本的 404。

还要区分 PAC Web 服务器与其脚本中指定的正向代理。它们可能共用一台机器,但一项服务的访问日志条目并不能证明另一项服务处理了用户的目标请求。

相关文章