WinHTTP AutoProxy-Unterstützung

Um die Konfiguration von 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-hilfsprogramms ProxyCfg.exe verwaltet. Der Serveradministrator kennt den Namen des Proxyservers im Voraus und verwendet ProxyCfg.exe, um diese Einstellung in der Registrierung aufzuzeichnen, in der WinHTTP ihn suchen kann. Es ist jedoch problematisch, dass Clientdesktop-Endbenutzer WinHTTP-Proxyeinstellungen manuell konfigurieren müssen. Der Endbenutzer kennt den Namen des Proxyservers möglicherweise nicht. Die Anforderung, dass der Endbenutzer das hilfsprogramm ProxyCfg.exe ausführen muss, kann eine Supportlast für eine Organisation 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 zwar sowohl Microsoft Internet Explorer als auch Microsoft WinHTTP WPAD unterstützen, die Spezifikation jedoch nie über die Phase "Internet-Draft" hinausgeht 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 Clientcomputer zwischengespeichert. Die PAC-Datei ist ein ausführbares Skript, das eine Liste von einem oder mehreren Proxyservern mit einem Zielhostnamen und einer ZIEL-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 im Format enthält:

  4. FindProxyForURL( url, host );
    

    Diese Funktion berechnet eine Liste von 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, wird dies mit einem speziellen Rückgabewert angegeben.

AutoProxy-Themen