다음을 통해 공유


AutoProxy Cache

WinHttpGetProxyForUrl 함수는 지정된 URL에 대해 요청별로 자동 프록시 조회를 수행합니다. 여러 프록시가 반환되면 클라이언트 애플리케이션은 요청을 보내기 전에 각 프록시를 테스트해야 합니다(자세한 내용은 WinHTTP의 AutoProxy 문제에서 프록시 서버가 현재 지원되는 섹션 참조). 이 항목의 정보는 클라이언트가 자동 프록시 검색을 지정할 때 WinHttpGetProxyForUrl 호출에 적용됩니다.

WinHttpGetProxyForUrl 필요에 따라 autoproxy URL을 찾고 해당 사이트에서 autoproxy 스크립트를 다운로드합니다. WinHttp는 autoproxy 스크립트를 사용하여 프록시 서버를 찾습니다. 자동 프록시 URL과 autoproxy 스크립트는 모두 지정된 세션에 대해 캐시됩니다. 각 세션에 대해 하나의 자동 프록시 URL 및 스크립트만 캐시됩니다. 일반적으로 자동 프록시 스크립트 및 URL은 컴퓨터와 연결된 IP 주소가 변경될 때까지 캐시됩니다. winHttpGetProxyForUrl 호출하는 동안 새 IP 주소가 검색되면 호출은 새 자동 프록시 URL 및 스크립트를 찾아 결과를 캐시하려고 시도합니다. 캐시된 데이터가 컴퓨터의 다른 사용자와 공유되지 않도록 세션당 하나의 사용자만 허용해야 합니다. 자세한 내용은 WinHTTP 세션 개요참조하세요.

WinHttpGetProxyForUrl때 out-of-process 서비스가 활성화된 경우 캐시된 자동 프록시 URL 및 스크립트를 전체 컴퓨터에서 사용할 수 있습니다. 그러나 out-of-process 서비스를 사용하고 pAutoProxyOptions 구조의 fAutoLogonIfChallenged 플래그가 true이면 autoproxy URL 및 스크립트가 캐시되지 않습니다. 따라서 fAutoLogonIfChallenged 멤버를 사용하여 WinHttpGetProxyForUrl 호출하면 TRUE 성능에 영향을 줄 수 있는 추가 오버헤드 작업이 발생합니다. 다음 단계를 사용하여 성능을 향상시킬 수 있습니다.

성능 향상하려면

  1. fAutoLogonIfChallenged 매개 변수를 사용하여 WinHttpGetProxyForUrl 호출하여 false . autoproxy URL 및 스크립트는 WinHttpGetProxyForUrl대한 향후 호출을 위해 캐시됩니다.
  2. ERROR_WINHTTP_LOGIN_FAILURE사용하여 1단계가 실패하면 fAutoLogonIfChallenged 멤버가 TRUE설정된 WinHttpGetProxyForUrl 호출합니다.