WinHTTP AutoProxy-Unterstützung

Um die Konfiguration der Proxyeinstellungen zu vereinfachen, implementiert WinHTTP 5.1 das WPAD-Protokoll (Web Proxy Auto-Discovery), das auch als Autoproxy bezeichnet wird.

Übersicht über AutoProxy

Anwendungen und Komponenten, die WinHTTP zum Senden von HTTP-Anforderungen verwenden, sollten sicherstellen, dass die Proxykonfiguration ordnungsgemäß festgelegt ist. Sofern der Client nicht über eine direkte Internetverbindung verfügt, sollte eine HTTP-Anforderung normalerweise über einen Webproxyserver gesendet werden, der das lokale Netzwerk des Clients mit dem Internet verbindet (dies ist z. B. häufig bei Webclients in einem Unternehmens-LAN der Fall). Bei serverbasierten Anwendungen wird die Proxykonfiguration normalerweise vom Administrator des Servers mithilfe des WinHTTP-ProxyCfg.exe-Hilfsprogramms verwaltet. Der Serveradministrator kennt den Namen des Proxyservers im Voraus und verwendet ProxyCfg.exe, um diese Einstellung in der Registrierung aufzuzeichnen, in der WinHTTP sie suchen kann. Es ist jedoch problematisch, dass Clientdesktop-Endbenutzer die WinHTTP-Proxyeinstellungen manuell konfigurieren müssen. Der Endbenutzer kann den Namen des Proxyservers nicht kennen. Die Anforderung, dass der Endbenutzer das Hilfsprogramm ProxyCfg.exe ausführen muss, kann für einen organization eine Supportlast darstellen. Um eine gute Benutzererfahrung zu unterstützen, sollte eine webfähige Clientanwendung die Proxykonfiguration ohne Benutzereingriff bestimmen.

Um die Konfiguration der Proxyeinstellungen für WinHTTP-basierte Anwendungen zu vereinfachen, implementiert WinHTTP jetzt das WPAD-Protokoll (Web Proxy Auto-Discovery), das häufig als Autoproxy bezeichnet wird. Dies ist dasselbe Protokoll, das Webbrowser implementieren, um die Proxykonfiguration automatisch zu ermitteln, ohne dass ein Endbenutzer einen Proxyserver manuell angeben muss. Dieses Feature ist ab WinHTTP Version 5.1 in Windows 2000 Service Pack 3, Windows XP Service Pack 1 und Windows Server 2003 verfügbar. Beachten Sie, dass sowohl Microsoft Internet Explorer als auch Microsoft WinHTTP WPAD unterstützen, die Spezifikation jedoch nie über die Phase "Internet-Draft" hinaus vorangekommen ist und im Mai 2001 abgelaufen ist.

Das WPAD-Protokoll funktioniert wie folgt:

  1. Mithilfe der DHCP- und/oder DNS-Netzwerkprotokolle wird die URL einer PAC-Datei (Proxy Auto-Configuration) ermittelt. Die URL identifiziert eine PAC-Datei im lokalen Netzwerk des Clients. WinHTTP unterstützt nur die PAC-URLs "http:" und "https:". Sie unterstützt z. B. keine "file:"-URLS.

  2. Die PAC-Datei wird heruntergeladen und optional auf dem Computer des Clients zwischengespeichert. Die PAC-Datei ist ein ausführbares Skript, das eine Liste von mindestens einem Proxyserver mit einem Zielhostnamen und einer URL generiert. WinHTTP unterstützt nur ECMAScript-basierte PAC-Dateien.

  3. Bei jeder HTTP-Anforderung wird der PAC-Skriptcode ausgeführt, wobei der Hostname und die URL der HTTP-Anforderung als Parameter übergeben werden. WinHTTP erwartet, dass der PAC-Skriptcode eine Funktion namens FindProxyForURL in folgender Form enthält:

  4. FindProxyForURL( url, host );
    

    Diese Funktion berechnet eine Liste mit einem oder mehreren Proxyservern, die vom HTTP-Client verwendet werden können, um die Anforderung zu übertragen. Wenn das PAC-Skript feststellt, dass der HTTP-Client den Zielserver direkt erreichen kann, ohne überhaupt einen Proxyserver zu durchlaufen, gibt es dies mithilfe eines speziellen Rückgabewerts an.

AutoProxy-Themen