WinHTTP AutoProxy 支持
为了简化代理设置的配置,WinHTTP 5.1 实现 Web 代理自动发现(WPAD)协议,也称为 autoproxy。
AutoProxy 概述
使用 WinHTTP 发送 HTTP 请求的应用程序和组件应确保正确设置代理配置。 除非客户端具有直接 Internet 连接,否则 HTTP 请求通常应通过将客户端的本地网络连接到 Internet 的 Web 代理服务器发送(例如,这通常是企业 LAN 上的 Web 客户端的情况)。 对于基于服务器的应用程序,代理配置通常由服务器的管理员使用 WinHTTP ProxyCfg.exe 实用工具进行管理。 服务器管理员事先知道代理服务器的名称,并使用 ProxyCfg.exe 在 WinHTTP 可以查找的注册表中记录此设置。 但是,要求客户端桌面最终用户手动配置 WinHTTP 代理设置是有问题的。 最终用户可能不知道代理服务器的名称;要求最终用户运行 ProxyCfg.exe 实用工具可能是组织的支持负担。 为了支持良好的用户体验,已启用 Web 的客户端应用程序应确定代理配置,而无需用户干预。
为了更轻松地为基于 WinHTTP 的应用程序配置代理设置,WinHTTP 现在实现了 Web 代理自动发现(WPAD)协议,通常称为 自动启动。 这是 Web 浏览器实现的相同协议,无需最终用户手动指定代理服务器即可自动发现代理配置。 此功能从 Windows 2000 Service Pack 3、Windows XP Service Pack 1 和 Windows Server 2003 中的 WinHTTP 版本 5.1 开始提供。 请注意,尽管Microsoft Internet Explorer 和 Microsoft WinHTTP 支持 WPAD,但规范从未进入“Internet-Draft”阶段,并在 2001 年 5 月过期。
WPAD 协议的工作原理如下:
使用 DHCP 和/或 DNS 网络协议,将发现代理自动配置 (PAC) 文件的 URL。 URL 标识客户端本地网络上的 PAC 文件。 WinHTTP 仅支持“http:”和“https:”PAC URL;例如,它不支持“file:”URL。
PAC 文件已下载并选择性地缓存在客户端计算机上。 PAC 文件是一个可执行脚本,它生成给定目标主机名和 URL 的一个或多个代理服务器的列表。 WinHTTP 仅支持基于 ECMAScript 的 PAC 文件。
在每个 HTTP 请求上,将执行 PAC 脚本代码,其中传递为参数的 HTTP 请求的主机名和 URL。 WinHTTP 要求 PAC 脚本代码包含名为 FindProxyForURL的函数,格式如下:
-
FindProxyForURL( url, host );
此函数计算 HTTP 客户端可用于传输请求的一个或多个代理服务器的列表。 如果 PAC 脚本确定 HTTP 客户端可以直接访问目标服务器而不通过代理服务器,则它使用特殊返回值指示这一点。
AutoProxy 主题
- WinHTTP AutoProxy 函数
- 在没有自动配置文件 的情况下 发现
- WinHTTP 中的 AutoProxy 问题
- 在 WinHTTP 中设置 WinInet 代理配置
- AutoProxy 缓存
- IPv6 扩展以导航器自动配置文件格式