AutoProxy Cache

La fonction WinHttpGetProxyForUrl effectue une recherche autoproxy par demande pour l’URL spécifiée. Si plusieurs proxys sont retournés, les applications clientes doivent tester chaque proxy avant d’envoyer la demande (pour plus d’informations, consultez la section Un seul serveur proxy actuellement pris en charge dans Problèmes de saisie automatique dans WinHTTP). Les informations contenues dans cette rubrique s’appliquent aux appels à WinHttpGetProxyForUrl lorsque le client spécifie la découverte automatique du proxy.

WinHttpGetProxyForUrl localise éventuellement l’URL autoproxy et télécharge le script autoproxy à partir de ce site. WinHttp utilise le script autoproxy pour localiser les serveurs proxy. L’URL autoproxy et le script autoproxy sont mis en cache pour la session spécifiée. Une seule URL et un script autoproxy sont mis en cache pour chaque session. En règle générale, le script autoproxy et l’URL sont mis en cache jusqu’à ce que l’adresse IP associée à l’ordinateur change. Si une nouvelle adresse IP est détectée lors d’un appel à WinHttpGetProxyForUrl, l’appel tente de localiser une nouvelle URL autoproxy et de scripter et de mettre en cache les résultats. Un seul utilisateur doit être autorisé par session, afin que les données mises en cache ne soient pas partagées avec d’autres utilisateurs sur l’ordinateur. Pour plus d’informations, consultez Vue d’ensemble des sessions WinHTTP.

Si le service hors processus est actif lorsque WinHttpGetProxyForUrl est appelé, l’URL et le script autoproxy mis en cache sont disponibles pour l’ordinateur entier. Toutefois, si le service hors processus est utilisé et que l’indicateur fAutoLogonIfChallenged dans la structure pAutoProxyOptions a la valeur true, l’URL et le script autoproxy ne sont pas mis en cache. Par conséquent, l’appel de WinHttpGetProxyForUrl avec le membre fAutoLogonIfChallenged défini sur TRUE entraîne des opérations de surcharge supplémentaires qui peuvent affecter les performances. Les étapes suivantes peuvent être utilisées pour améliorer les performances.

Pour améliorer les performances

  1. Appelez WinHttpGetProxyForUrl avec le paramètre fAutoLogonIfChallenged défini sur false. L’URL et le script autoproxy sont mis en cache pour les appels futurs à WinHttpGetProxyForUrl.
  2. Si l’étape 1 échoue, avec ERROR_WINHTTP_LOGIN_FAILURE, appelez WinHttpGetProxyForUrl avec le membre fAutoLogonIfChallenged défini sur TRUE.