Поделиться через


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

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

Обзор AutoProxy

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

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

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

  1. С помощью сетевых протоколов DHCP и (или) DNS обнаруживается URL-адрес файла автоматической настройки прокси-сервера (PAC). URL-адрес определяет PAC-файл в локальной сети клиента. WinHTTP поддерживает только URL-адреса 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