Suporte a AutoProxy do WinHTTP

Para facilitar a configuração das configurações de proxy, o WinHTTP 5.1 implementa o protocolo WPAD (Descoberta Automática de Proxy Web), também conhecido como autoproxia.

Visão geral do AutoProxy

Aplicativos e componentes que usam WinHTTP para enviar solicitações HTTP devem garantir que a configuração do proxy esteja definida corretamente. A menos que o cliente tenha uma conexão direta com a Internet, uma solicitação HTTP normalmente deve ser enviada por meio de um servidor proxy Web que conecta a rede local do cliente à Internet (por exemplo, geralmente, esse é o caso de clientes Web em uma LAN corporativa). Para aplicativos baseados em servidor, a configuração de proxy normalmente é gerenciada pelo administrador do servidor usando o utilitário ProxyCfg.exe WinHTTP. O administrador do servidor sabe o nome do servidor proxy com antecedência e usa ProxyCfg.exe para registrar essa configuração no registro em que o WinHTTP pode pesquisá-lo. No entanto, exigir que os usuários finais da área de trabalho do cliente definam manualmente as configurações de proxy WinHTTP é problemático. O usuário final pode não saber o nome do servidor proxy; exigir que o usuário final execute o utilitário ProxyCfg.exe pode ser uma carga de suporte para uma organização. Para dar suporte a uma boa experiência do usuário, um aplicativo cliente habilitado para a Web deve determinar a configuração de proxy sem intervenção do usuário.

Para facilitar a definição das configurações de proxy para aplicativos baseados em WinHTTP, o WinHTTP agora implementa o protocolo WPAD (Descoberta Automática de Proxy Web), geralmente conhecido como autoproxy. Esse é o mesmo protocolo que os navegadores da Web implementam para descobrir automaticamente a configuração de proxy sem exigir que um usuário final especifique um servidor proxy manualmente. Esse recurso está disponível a partir do WinHTTP versão 5.1 no Windows 2000 Service Pack 3, Windows XP Service Pack 1 e Windows Server 2003. Observe que, embora tanto o Microsoft Internet Explorer quanto o Microsoft WinHTTP deem suporte ao WPAD, a especificação nunca progrediu além do estágio "Internet-Draft" e expirou em maio de 2001.

O protocolo WPAD funciona da seguinte maneira:

  1. Usando os protocolos de rede DHCP e/ou DNS, a URL de um arquivo PAC (Configuração Automática de Proxy) é descoberta. A URL identifica um arquivo PAC na rede local do cliente. O WinHTTP dá suporte apenas a URLs PAC "http:" e "https:"; ele não dá suporte, por exemplo, à URLS "file:".

  2. O arquivo PAC é baixado e, opcionalmente, armazenado em cache no computador do cliente. O arquivo PAC é um script executável que gera uma lista de um ou mais servidores proxy com um nome de host de destino e UMA URL. O WinHTTP dá suporte apenas a arquivos PAC baseados em ECMAScript.

  3. Em cada solicitação HTTP, o código de script PAC é executado, com o nome do host e a URL da solicitação HTTP passada como parâmetros. O WinHTTP espera que o código de script PAC contenha uma função chamada FindProxyForURL, no formato:

  4. FindProxyForURL( url, host );
    

    Essa função calcula uma lista de um ou mais servidores proxy que podem ser usados pelo cliente HTTP para transmitir a solicitação. Se o script PAC determinar que o cliente HTTP pode acessar o servidor de destino diretamente sem passar por um servidor proxy, isso indicará isso usando um valor retornado especial.

Tópicos do AutoProxy