À propos de WinHTTP

Notes

Pour les conteneurs d’application et les services système depuis Windows 10, la version 1709, HTTP/2 (voir RFC7540) est activée par défaut.

Microsoft Windows HTTP Services (WinHTTP) vous fournit une interface de haut niveau prise en charge par le serveur pour les protocoles Internet HTTP/2 et 1.1. WinHTTP est conçu pour être utilisé principalement dans des scénarios basés sur un serveur par les applications serveur qui communiquent avec des serveurs HTTP.

WinINet a été conçu comme une plateforme cliente HTTP pour les applications de bureau interactives. WinINet affiche une interface utilisateur pour certaines opérations telles que la collecte des informations d’identification utilisateur. WinHTTP, toutefois, gère ces opérations par programmation. Les applications serveur qui nécessitent des services clients HTTP doivent utiliser WinHTTP au lieu de WinINet. Pour plus d’informations, consultez Portage d’applications WinINet vers WinHTTP.

WinHTTP est également conçu pour être utilisé dans les services système et les applications clientes HTTP. Toutefois, les applications mono-utilisateur qui nécessitent la fonctionnalité de protocole FTP, la persistance des cookies, la mise en cache, la gestion automatique des boîtes de dialogue d’informations d’identification, la compatibilité Internet Explorer ou la prise en charge de la plateforme de niveau inférieur doivent envisager d’utiliser WinINet.

Cette interface est accessible à partir de C/C++ à l’aide de l’interface de programmation d’application WinHTTP (API), ou à l’aide des interfaces IWinHttpRequest et IWinHttpRequestEvents . WinHTTP est également accessible à partir du script et de Microsoft Visual Basic via l’objet WinHTTP. Pour plus d’informations et des descriptions des fonctions individuelles, consultez la référence des fonctions WinHTTP pour le langage spécifique.

À compter de Windows 8, WinHTTP fournit des API pour activer les connexions à l’aide du protocole WebSocketl, telles que WinHttpWebSocketSend et WinHttpWebSocketReceive.

Attention

WinHTTP n’est pas réentrant, sauf pendant le rappel d’achèvement asynchrone. Autrement dit, bien qu’un thread ait un appel en attente pour l’une des fonctions WinHTTP telles que WinHttpSendRequest, WinHttpReceiveResponse, WinHttpQueryDataAvailable, WinHttpSendData ou WinHttpWriteData, il ne doit jamais appeler WinHTTP une deuxième fois tant que le premier appel n’est pas terminé. Un scénario dans lequel un deuxième appel peut se produire est le suivant : si une application met en file d’attente un appel de procédure asynchrone (APC) vers le thread qui appelle dans WinHTTP, et si WinHTTP effectue une attente alertable en interne, l’APC peut s’exécuter. Si la routine APC appelle également WinHTTP, elle entre à nouveau dans l’API WinHTTP, et l’état interne de WinHTTP peut être endommagé.

Fonctionnalités winHTTP 5.1

Les fonctionnalités suivantes ont été ajoutées dans la version 5.1 de WinHTTP :

  • Prise en charge d’IPv6.
  • Fonctionnalités AutoProxy.
  • Protocole HTTP/1.0, y compris la prise en charge des connexions keep-alive (persistantes) et des cookies de session.
  • Prise en charge du transfert en bloc HTTP/1.1 pour les réponses HTTP.
  • Mise en commun continue des connexions anonymes entre les sessions.
  • Fonctionnalité SSL (Secure Sockets Layer), y compris les certificats clients. Les protocoles SSL pris en charge sont les suivants : SSL 2.0, SSL 3.0 et TLS (Transport Layer Security) 1.0.
  • Prise en charge de l’authentification du serveur et du proxy, y compris la prise en charge intégrée de Microsoft Passport 1.4 et du package Negotiate/ Kerberos .
  • Gestion automatique des redirections, sauf si elle est supprimée.
  • Interface scriptable en plus de l’API.
  • Utilitaire de suivi pour aider à résoudre les problèmes.

Un certain nombre de fonctionnalités WinINet ne sont pas prises en charge dans WinHTTP, notamment la mise en cache d’URL et les cookies persistants, l’autoproxy, la transmission automatique, la prise en charge hors connexion et le protocole FTP (File Transfer Protocol).

Pour plus d’informations sur les modifications introduites dans la version 5.1, consultez Nouveautés de WinHTTP 5.1.

Prise en main avec WinHTTP

Pour plus d’informations sur WinHTTP, consultez les rubriques suivantes.