Informationen zu WinHTTP

Hinweis

Für App-Container und Systemdienste seit Windows 10 version 1709 ist HTTP/2 (siehe RFC7540) standardmäßig aktiviert.

Microsoft Windows HTTP Services (WinHTTP) bietet eine servergestützte, allgemeine Schnittstelle zu den HTTP/2- und 1.1-Internetprotokollen. WinHTTP ist für die Verwendung hauptsächlich in serverbasierten Szenarien von Serveranwendungen konzipiert, die mit HTTP-Servern kommunizieren.

WinINet wurde als HTTP-Clientplattform für interaktive Desktopanwendungen konzipiert. WinINet zeigt eine Benutzeroberfläche für einige Vorgänge an, z. B. das Sammeln von Benutzeranmeldeinformationen. WinHTTP verarbeitet diese Vorgänge jedoch programmgesteuert. Serveranwendungen, die HTTP-Clientdienste erfordern, sollten WinHTTP anstelle von WinINet verwenden. Weitere Informationen finden Sie unter Portieren von WinINet-Anwendungen zu WinHTTP.

WinHTTP ist auch für die Verwendung in Systemdiensten und HTTP-basierten Clientanwendungen konzipiert. Einzelbenutzeranwendungen, die FTP-Protokollfunktionalität, Cookiepersistenz, Zwischenspeicherung, automatische Verarbeitung von Anmeldeinformationen, Internet-Explorer-Kompatibilität oder Unterstützung für Downlevel-Plattformen erfordern, sollten die Verwendung von WinINet in Erwägung ziehen.

Auf diese Schnittstelle kann über C/C++ entweder über die WinHTTP-Api (Application Programming Interface, API) oder über die IWinHttpRequest - und IWinHttpRequestEvents-Schnittstellen zugegriffen werden. Auf WinHTTP kann auch über das Skript und Microsoft Visual Basic über das WinHTTP-Objekt zugegriffen werden. Weitere Informationen und Beschreibungen der einzelnen Funktionen finden Sie in der WinHTTP-Funktionsreferenz für die jeweilige Sprache.

Ab Windows 8 stellt WinHTTP APIs bereit, um Verbindungen mit dem WebSocket-Protokolll wie WinHttpWebSocketSend und WinHttpWebSocketReceive zu aktivieren.

Achtung

WinHTTP wird nicht erneut ausgeführt, außer während des Rückrufs zur asynchronen Vervollständigung. Das heißt, ein Thread verfügt zwar über einen Aufruf, der für eine der WinHTTP-Funktionen wie WinHttpSendRequest, WinHttpReceiveResponse, WinHttpQueryDataAvailable, WinHttpSendData oder WinHttpWriteData aussteht, darf WinHTTP jedoch nie ein zweites Mal aufrufen, bis der erste Aufruf abgeschlossen ist. Ein Szenario, in dem ein zweiter Aufruf erfolgen könnte, ist folgendes: Wenn eine Anwendung einen Asynchronen Prozeduraufruf (Asynchrone Prozeduraufrufe) an dem Thread in die Warteschlange stellt, der WinHTTP aufruft, und wenn WinHTTP intern eine warnbare Wartezeit ausführt, kann der APC ausgeführt werden. Wenn die APC-Routine auch WinHTTP aufruft, wird die WinHTTP-API erneut aufgerufen, und der interne Zustand von WinHTTP kann beschädigt sein.

WinHTTP 5.1-Features

Die folgenden Features wurden in Version 5.1 von WinHTTP hinzugefügt:

  • IPv6-Unterstützung.
  • AutoProxy-Funktionen.
  • HTTP/1.0-Protokoll, einschließlich Unterstützung für keep-alive (persistente) Verbindungen und Sitzungscookies.
  • Unterstützung von HTTP/1.1-Blockübertragungen für HTTP-Antworten.
  • Keep-Alive-Pooling von anonymen Verbindungen über Sitzungen hinweg.
  • SSL-Funktionalität (Secure Sockets Layer), einschließlich Clientzertifikaten. Zu den unterstützten SSL-Protokollen gehören SSL 2.0, SSL 3.0 und Transport Layer Security (TLS) 1.0.
  • Unterstützung für die Server- und Proxyauthentifizierung, einschließlich integrierter Unterstützung für Microsoft Passport 1.4 und das Negotiate/ Kerberos-Paket .
  • Automatische Verarbeitung von Umleitungen, sofern nicht unterdrückt.
  • Skriptfähige Schnittstelle zusätzlich zur API.
  • Ablaufverfolgungs-Hilfsprogramm, um Probleme zu beheben.

Eine Reihe von WinINet-Features werden in WinHTTP nicht unterstützt, darunter URL-Zwischenspeicherung und persistente Cookies, Autoproxy, Autodialing, Offlineunterstützung und FTP (File Transfer Protocol).

Weitere Informationen zu änderungen, die in Version 5.1 eingeführt wurden, finden Sie unter Neuerungen in WinHTTP 5.1.

Erste Schritte mit WinHTTP

Weitere Informationen zu WinHTTP finden Sie in den folgenden Themen.