AutoProxy Cache

La función WinHttpGetProxyForUrl realiza la búsqueda de autoproxy por solicitud para la dirección URL especificada. Si se devuelven varios servidores proxy, las aplicaciones cliente deben probar cada proxy antes de enviar la solicitud (para obtener más información, consulte la sección Only One Proxy Server is Currently Supported in AutoProxy Issues in WinHTTP). La información de este tema se aplica a las llamadas a WinHttpGetProxyForUrl cuando el cliente especifica la detección automática de proxy.

WinHttpGetProxyForUrl busca opcionalmente la dirección URL de autoproxy y descarga el script de autoproxy de ese sitio. WinHttp usa el script autoproxy para buscar los servidores proxy. Tanto la dirección URL de autoproxy como el script de autoproxy se almacenan en caché para la sesión especificada. Solo se almacenan en caché una dirección URL de autoproxy y un script para cada sesión. Normalmente, el script y la dirección URL de autoproxy se almacenan en caché hasta que cambia la dirección IP asociada al equipo. Si se detecta una nueva dirección IP durante una llamada a WinHttpGetProxyForUrl, la llamada intentará buscar una nueva dirección URL de autoproxy y un script y almacenar en caché los resultados. Solo se debe permitir un usuario por sesión, de modo que los datos almacenados en caché no se compartan con otros usuarios del equipo. Para obtener más información, consulte Información general sobre sesiones winHTTP.

Si el servicio fuera de proceso está activo cuando se llama a WinHttpGetProxyForUrl , la dirección URL de autoproxy almacenada en caché y el script están disponibles para todo el equipo. Sin embargo, si se usa el servicio fuera de proceso y la marca fAutoLogonIfChallenged en la estructura pAutoProxyOptions es true, la dirección URL y el script de autoproxy no se almacenan en caché. Por lo tanto, llamar a WinHttpGetProxyForUrl con el miembro fAutoLogonIfChallenged establecido en TRUE da como resultado operaciones de sobrecarga adicionales que pueden afectar al rendimiento. Los pasos siguientes se pueden usar para mejorar el rendimiento.

Para mejorar el rendimiento

  1. Llame a WinHttpGetProxyForUrl con el parámetro fAutoLogonIfChallenged establecido en false. La dirección URL y el script de autoproxy se almacenan en caché para futuras llamadas a WinHttpGetProxyForUrl.
  2. Si se produce un error en el paso 1, con ERROR_WINHTTP_LOGIN_FAILURE, llame a WinHttpGetProxyForUrl con el miembro fAutoLogonIfChallenged establecido en TRUE.