AutoProxy 캐시

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

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

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

성능을 향상시키려면

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