Поддержка Автопрокси WinHTTP

Чтобы упростить настройку параметров прокси-сервера, WinHTTP 5.1 реализует протокол автоматического обнаружения веб-прокси (WPAD), также известный как autoproxy.

Обзор AutoProxy

Приложения и компоненты, использующие WinHTTP для отправки HTTP-запросов, должны обеспечить правильную настройку прокси-сервера. Если у клиента нет прямого подключения к Интернету, HTTP-запрос обычно должен отправляться через веб-прокси-сервер, который подключает локальную сеть клиента к Интернету (например, это часто происходит для веб-клиентов в корпоративной локальной сети). Для серверных приложений конфигурация прокси-сервера обычно управляется администратором сервера с помощью служебной программы WinHTTP ProxyCfg.exe. Администратор сервера заранее знает имя прокси-сервера и использует ProxyCfg.exe для записи этого параметра в реестр, где WinHTTP может найти его. Однако требовать от конечных пользователей клиентского рабочего стола вручную настраивать параметры прокси-сервера WinHTTP проблематично. Конечный пользователь может не знать имя прокси-сервера; Требование, чтобы конечный пользователь запускал служебную программу ProxyCfg.exe, может быть бременем поддержки для организации. Для обеспечения хорошего взаимодействия с пользователем клиентское приложение с поддержкой веб-интерфейса должно определять конфигурацию прокси-сервера без вмешательства пользователя.

Чтобы упростить настройку параметров прокси-сервера для приложений на основе WinHTTP, WinHTTP теперь реализует протокол автоматического обнаружения веб-прокси (WPAD), который часто называют автопрокси. Это тот же протокол, который веб-браузеры реализуют для автоматического обнаружения конфигурации прокси-сервера, не требуя от пользователя указывать прокси-сервер вручную. Эта функция доступна начиная с WinHTTP версии 5.1 в Windows 2000 с пакетом обновления 3 (SP3), Windows XP с пакетом обновления 1 (SP1) и Windows Server 2003. Обратите внимание, что хотя и Microsoft Internet Обозреватель, и Microsoft WinHTTP поддерживают WPAD, спецификация никогда не выходит за этап "Internet-Draft" и истекает в мае 2001 года.

Протокол WPAD работает следующим образом:

  1. С помощью сетевых протоколов DHCP и (или) DNS обнаруживается URL-адрес файла автоматической настройки прокси-сервера (PAC). URL-адрес идентифицирует PAC-файл в локальной сети клиента. WinHTTP поддерживает только URL-адреса PAC http:и https:; он, например, не поддерживает URL-адреса file:.

  2. PAC-файл загружается и при необходимости кэшируется на компьютере клиента. PAC-файл — это исполняемый скрипт, который создает список одного или нескольких прокси-серверов с указанием имени и URL-адреса целевого узла. WinHTTP поддерживает только PAC-файлы на основе ECMAScript.

  3. При каждом HTTP-запросе выполняется код скрипта PAC с именем узла и URL-адресом HTTP-запроса, передаваемым в качестве параметров. WinHTTP ожидает, что код скрипта PAC будет содержать функцию FindProxyForURL в форме:

  4. FindProxyForURL( url, host );
    

    Эта функция вычисляет список из одного или нескольких прокси-серверов, которые могут использоваться HTTP-клиентом для передачи запроса. Если скрипт PAC определяет, что HTTP-клиент может напрямую связаться с целевым сервером, не проходя через прокси-сервер, он указывает на это с помощью специального возвращаемого значения.

Разделы AutoProxy