옵션 플래그

다음 옵션 플래그는 WinHttpQueryOptionWinHttpSetOption에서 지원됩니다.

WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS

기본값은 FALSE입니다. TRUE로 설정하면 클라이언트 애플리케이션에서 상태 콜백이 차단되는 경우 WinHTTP에서 진행률을 보장하지 않습니다.

클라이언트 애플리케이션은 차단 없이 콜백 내에서 최소한의 작업을 수행하여 가능한 한 빨리 반환해야 하며, 특히 후속 WinHTTP 호출을 기다리지 않아야 합니다. 이러한 지침을 따르지 않으면 성능에 부정적인 영향을 미치거나 잠재적인 애플리케이션 중단이 발생할 수 있습니다. 지정된 방식으로 사용하는 경우 이 옵션을 사용하면 성능이 향상될 수 있습니다.

WINHTTP_OPTION_AUTOLOGON_POLICY

다음 값 중 하나를 사용하여 자동 로그온 정책을 지정하는 부호 없는 긴 정수 값을 설정합니다.

용어 Description
WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH 기본 자격 증명은 사용되지 않습니다. 이 플래그는 실제 컴퓨터 이름으로 서버를 지정하는 경우에만 적용됩니다. 서버를 "localhost" 또는 IP 주소로 지정하면 적용되지 않습니다.
WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW 기본 자격 증명을 사용하여 인증된 로그온은 모든 요청에 대해 수행됩니다.
WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM 기본 자격 증명을 사용하여 인증된 로그온은 로컬 인트라넷의 요청에 대해서만 수행됩니다.

WINHTTP_OPTION_BACKGROUND_CONNECTIONS

세션 핸들에서 이 옵션을 설정할 때 열려는 연결 수를 전달해야 합니다. 그런 다음, 단일 연결만 여는 대신 요청을 처음 보내면 WinHttp에서 여러 연결을 병렬로 엽니다. 이렇게 하면 연결 설정의 오버헤드가 없는 동일한 대상에 대한 후속 요청의 성능을 향상시킬 수 있습니다.

WINHTTP_OPTION_CALLBACK

WinHttpSetStatusCallback을 사용하여 콜백 함수 집합에 대한 포인터를 검색합니다.

WINHTTP_OPTION_CLIENT_CERT_CONTEXT

클라이언트 인증서 컨텍스트를 설정합니다. 애플리케이션이 ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED 수신하는 경우 요청을 다시 시도하기 전에 WinHttpSetOption을 호출하여 인증서를 제공해야 합니다. 이 옵션을 처리하는 일환으로 WinHttp는 호출자가 제공한 인증서 컨텍스트에서 CertDuplicateCertificateContext 를 호출하여 호출자가 인증서 컨텍스트를 독립적으로 해제할 수 있도록 합니다.

참고

애플리케이션은 인증서 컨텍스트가 검색된 인증서 저장소의 CertCloseStore 호출에서 CERT_CLOSE_STORE_FORCE_FLAG 플래그를 사용하여 인증서 저장소를 닫으려고 시도해서는 안 됩니다. 액세스 위반이 발생할 수 있습니다.

서버가 클라이언트 인증서, WinHttpSendRequest 또는 WinHttpReceiveResponse 를 요청하면 ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED 오류가 반환됩니다. 서버에서 인증서를 요청하지만 인증서가 필요하지 않은 경우 애플리케이션은 인증서가 없음을 나타내기 위해 이 옵션을 지정할 수 있습니다. 서버는 다른 인증 체계를 선택하거나 서버에 대한 익명 액세스를 허용할 수 있습니다. 애플리케이션은 다음 코드 예제와 같이 WinHttpSetOptionlpBuffer 매개 변수에 WINHTTP_NO_CLIENT_CERT_CONTEXT 매크로를 제공합니다.

BOOL fRet = WinHttpSetOption(hRequest,
                             WINHTTP_OPTION_CLIENT_CERT_CONTEXT,
                             WINHTTP_NO_CLIENT_CERT_CONTEXT,
                             0);

서버에 클라이언트 인증서가 필요한 경우 응답으로 403 HTTP 상태 코드를 보낼 수 있습니다. 자세한 내용은 WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST 옵션을 참조하세요.

WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST

WinHttpSendRequest 또는 WinHttpReceiveResponse의 오류가 ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED 경우 SecPkgContext_IssuerListInfoEx구조를 검색합니다. 구조의 발급자 목록에는 서버에서 허용되는 CA(인증 기관) 목록이 포함되어 있습니다. 클라이언트 애플리케이션은 CA 목록을 필터링하여 SSL 인증을 위한 클라이언트 인증서를 검색할 수 있습니다.

또는 서버가 클라이언트 인증서를 요청하지만 필요하지 않은 경우 애플리케이션은 WINHTTP_OPTION_CLIENT_CERT_CONTEXT 옵션을 사용하여 WinHttpSetOption을 호출할 수 있습니다. 자세한 내용은 WINHTTP_OPTION_CLIENT_CERT_CONTEXT 옵션을 참조하세요.

WINHTTP_OPTION_CODEPAGE

URL(즉, 쿼리 문자열)을 처리하는 데 사용되는 코드 페이지를 설정합니다. 기본값은 UTF8입니다.

WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH

WinHTTP 인증에서 Passport 인증을 사용할 수 있는지 여부를 지정하는 부호 없는 긴 정수 값을 설정합니다. 값은 다음 중 하나일 수 있습니다.

용어 설명
WINHTTP_DISABLE_PASSPORT_AUTH Microsoft Passport 인증을 사용할 수 없습니다. 이것이 기본값입니다.
WINHTTP_DISABLE_PASSPORT_KEYRING Passport 키링이 사용하지 않도록 설정되었습니다. 이것이 기본값입니다.
WINHTTP_ENABLE_PASSPORT_AUTH Passport 인증을 사용할 수 있습니다.
WINHTTP_ENABLE_PASSPORT_KEYRING Passport 키링이 사용하도록 설정됩니다.

WINHTTP_OPTION_CONNECT_RETRIES

WinHTTP가 호스트에 연결하려고 시도한 횟수를 포함하는 부호 없는 긴 정수 값을 설정하거나 검색합니다. Microsoft Windows HTTP 서비스(WinHTTP)는 IP(인터넷 프로토콜) 주소당 한 번만 시도합니다. 예를 들어 IP 주소가 10개이고 WINHTTP_OPTION_CONNECT_RETRIES 7로 설정된 다중 호스트에 연결을 시도하는 경우 WinHTTP는 처음 7개의 IP 주소에만 연결을 시도합니다. 동일한 IP 주소 집합이 10개인 경우 WINHTTP_OPTION_CONNECT_RETRIES 20으로 설정된 경우 WinHTTP는 10개 각각을 한 번만 시도합니다. 지정된 횟수 후에도 연결 시도가 실패하거나 연결 시간 제한이 만료된 후에도 요청이 취소됩니다. WINHTTP_OPTION_CONNECT_RETRIES 기본값은 5번의 시도입니다.

WINHTTP_OPTION_CONNECT_TIMEOUT

시간 제한 값을 포함하는 부호 없는 긴 정수 값을 밀리초 단위로 설정하거나 검색합니다. 이 옵션을 무한(0xFFFFFFFF)으로 설정하면 이 타이머가 비활성화됩니다.

TCP 연결 요청이 이 시간 제한 값보다 오래 걸리면 요청이 취소됩니다. 기본 시간 제한은 60초입니다. 단일 호스트(다중 호스트)에 대한 여러 IP 주소에 연결을 시도하는 경우 시간 제한은 각 개별 연결에 대한 것입니다.

WINHTTP_OPTION_CONNECTION_INFO

WinHttpReceiveResponse가 반환될 때 응답을 생성한 요청의 원본 및 대상 IP 주소 및 포트를 검색합니다. 애플리케이션은 WINHTTP_OPTION_CONNECTION_INFO 옵션을 사용하여 WinHttpQueryOption을 호출하고 lpBuffer 매개 변수에 WINHTTP_CONNECTION_INFO 구조를 제공합니다. 자세한 내용은 WINHTTP_CONNECTION_INFO 참조하세요.

적용 대상: WINDOWS XP SP2 이상; WINDOWS 2003 SP1 이상

WINHTTP_OPTION_CONNECTION_GUID

WinHTTP 요청 핸들과 연결된 연결을 GUID로 표시합니다. 이렇게 하면 WINHTTP_OPTION_MATCH_CONNECTION_GUID 옵션을 사용하여 어떤 연결 그룹을 사용하는 요청을 사용자 지정할 있습니다.

WINHTTP_OPTION_CONNECTION_STATS_V0

요청에서 사용하는 기본 연결에 대한 TCP_INFO_v0 구조체를 다시 처리합니다. 반환된 구조체에는 동일한 연결을 통해 전송된 이전 요청의 통계가 포함될 수 있습니다.

참고

이 옵션은 WINHTTP_OPTION_CONNECTION_STATS_V1 대체되었습니다.

WINHTTP_OPTION_CONNECTION_STATS_V1

요청에서 사용하는 기본 연결에 대한 TCP_INFO_v1 구조체를 다시 처리합니다. 반환된 구조체에는 동일한 연결을 통해 전송된 이전 요청의 통계가 포함될 수 있습니다.

WINHTTP_OPTION_CONTEXT_VALUE

HINTERNET 핸들과 연결된 컨텍스트 값에 대한 포인터가 포함된 DWORD_PTR 설정하거나 검색합니다. 버퍼에 저장된 값이 사용되고 WINHTTP_OPTION_CONTEXT_VALUE 옵션 플래그에 새 값이 할당됩니다.

WINHTTP_OPTION_DECOMPRESSION

WinHTTP가 압축된 Content-Encodings를 사용하여 응답 본문을 자동으로 압축 해제할지 여부를 결정하는 플래그의 DWORD를 설정합니다. 또한 WinHTTP는 적절한 Accept-Encoding 헤더를 설정하여 호출자가 제공한 헤더를 재정의합니다. 지원되는 값은 다음과 같습니다.

용어 설명
WINHTTP_DECOMPRESSION_FLAG_GZIP 콘텐츠 인코딩 압축 해제: gzip 응답.
WINHTTP_DECOMPRESSION_FLAG_DEFLATE 콘텐츠 인코딩 압축 해제: 응답을 수축합니다.
WINHTTP_DECOMPRESSION_FLAG_ALL 지원되는 콘텐츠 인코딩을 사용하여 응답을 압축 해제합니다.

기본적으로 WinHTTP는 수정되지 않은 호출자에게 압축된 응답을 제공합니다.

WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING

WinHttp 세션 핸들에서 이 옵션을 설정하면 서버 인증서 체인이 빌드되었는지 여부를 사용하거나 사용하지 않도록 설정할 수 있습니다.

WINHTTP_OPTION_DISABLE_FEATURE

다음 플래그 중 하나 이상에서 사용하지 않도록 설정되는 기능을 지정하는 부호 없는 long 정수 값을 설정합니다. 이 기능은 WinHttpOpenRequest를 사용하여 요청 핸들을 만든 후 및 요청이 WinHttpSendRequest와 함께 전송되기 전에 요청 핸들에서만 WinHttpSetOption에 전달되어야 합니다.

용어 설명
WINHTTP_DISABLE_AUTHENTICATION 자동 인증을 사용할 수 없습니다.
WINHTTP_DISABLE_COOKIES 요청에 쿠키 헤더를 자동으로 추가할 수 없습니다. 또한 반환된 쿠키는 쿠키 데이터베이스에 자동으로 추가되지 않습니다. 쿠키를 사용하지 않도록 설정하면 Passport 인증에 대한 성능이 저하 될 수 있습니다.
WINHTTP_DISABLE_KEEP_ALIVE 연결에 대한 연결 유지 의미 체계를 사용하지 않도록 설정합니다. MSN, NTLM 및 기타 유형의 인증에는 연결 유지 의미 체계가 필요합니다.
WINHTTP_DISABLE_REDIRECTS WinHttpSendRequest를 사용하여 요청을 보낼 때 자동 리디렉션을 사용할 수 없습니다. 자동 리디렉션을 사용하지 않도록 설정하면 Passport 인증이 성공하려면 애플리케이션에서 콜백 함수를 등록해야 합니다.

WINHTTP_OPTION_DISABLE_GLOBAL_POOLING

전역 세션 간 풀링을 사용하지 않도록 설정합니다. 전역 세션 간 풀링이 호환성을 위해 기본적으로 지원되는 레거시 동작이므로 이 방법을 사용하는 것이 좋습니다. 이는 나중에 최대 연결을 수동으로 설정하면 영향을 받습니다.

WINHTTP_OPTION_DISABLE_PROXY_AUTH_SCHEMES

적용 가능한 모든 선택 항목을 제공하여 OR WinHTTP 세션에서 다음 프록시 인증 사례 중 하나 이상을 사용하지 않도록 설정합니다. 루프백 또는 로컬 주소로 요청을 보낼 때 로컬 컴퓨터 계정을 강제로 사용하는 WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE 제외한 모든 체계입니다. 그러면 로컬 HTTP 프록시에 시스템 자격 증명이 누출되지 않습니다.

용어 Description
WINHTTP_PROXY_DISABLE_SCHEME_BASIC 기본 인증 체계를 사용하지 않도록 설정합니다.
WINHTTP_PROXY_DISABLE_SCHEME_DIGEST 다이제스트 인증 체계를 사용하지 않도록 설정합니다.
WINHTTP_PROXY_DISABLE_SCHEME_NTLM NTLM 인증 체계를 사용하지 않도록 설정합니다.
WINHTTP_PROXY_DISABLE_SCHEME_KERBEROS Kerberos 인증 체계를 사용하지 않도록 설정합니다.
WINHTTP_PROXY_DISABLE_SCHEME_NEGOTIATE 인증 협상 체계를 사용하지 않도록 설정합니다.
WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE 요청을 루프백 또는 로컬 주소로 보낼 때 로컬 컴퓨터 계정을 강제로 사용합니다.

WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK

초기 프로토콜 협상이 실패할 때 WinHTTP가 더 낮은 버전의 보안 프로토콜로 연결을 다시 시도하지 못하도록 합니다.

WINHTTP_OPTION_DISABLE_STREAM_QUEUE

기존 연결에서 사용 가능한 다음 스트림을 기다리지 않고 최대 동시 스트림 제한에 도달할 때 새 요청이 추가 HTTP/2 연결을 열 수 있도록 허용합니다.

WINHTTP_OPTION_ENABLE_FEATURE

현재 사용하도록 설정된 기능을 지정하는 부호 없는 긴 정수 값을 설정합니다. 다음 값 중 하나일 수 있습니다.

용어 설명
WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION 사용하도록 설정된 경우 WinHTTP는 SSL 인증서 인증 작업 기간 동안 클라이언트 가장을 일시적으로 되돌려 줍니다. 이 값은 세션 핸들에서만 설정할 수 있습니다.
WINHTTP_ENABLE_SSL_REVOCATION 사용하도록 설정하면 WinHTTP에서 SSL 해지를 허용합니다. 이 값은 요청 핸들에서만 설정할 수 있습니다.

WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL

허용되는 고급 HTTP 버전의 DWORD 비트 마스크를 설정합니다. 가능한 값은 다음과 같습니다.

용어 Description
WINHTTP_PROTOCOL_FLAG_HTTP2(0x1) 요청에 대해 HTTP/2를 사용하도록 설정합니다.
WINHTTP_PROTOCOL_FLAG_HTTP3(0x2) 요청에 대해 HTTP/3을 사용하도록 설정합니다.
없음(0x0) 요청을 HTTP/1.1 이전으로 제한합니다.

이 옵션을 사용하여 레거시 버전의 HTTP(1.1 이상)를 사용하지 않도록 설정할 수 없습니다. 기본값은 0x0.

WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT

이 옵션은 WinHttp 세션 핸들에서 설정하여 HTTP/2를 사용할 때 WinHttp가 호출자 제공 클라이언트 인증서 컨텍스트를 사용할 수 있도록 할 수 있습니다.

WINHTTP_OPTION_ENABLETRACING

추적이 현재 사용하도록 설정되어 있는지 여부를 지정하는 BOOL 값을 설정합니다. 이 옵션은 NULLHINTERNET 핸들에서만 설정할 수 있습니다. WinHTTP 추적 수집도 참조하세요.

WINHTTP_OPTION_ENCODE_EXTRA

경로 및 쿼리 문자열에 대한 URL 백분율 인코딩을 사용하도록 설정합니다.

또는 WinHttp를 호출하기 전에 인코딩 비율을 지정할 수 있습니다.

WINHTTP_OPTION_EXPIRE_CONNECTION

이 옵션은 여전히 활성 상태인 요청 핸들(송신 또는 수신)에서만 설정할 수 있습니다. 이 옵션을 설정하면 WinHttp가 전달된 요청 핸들과 연결된 연결에서 요청 제공을 중지하도록 지시합니다. 요청 핸들이 이 옵션을 호출한 후 연결이 닫힙니다. 이 옵션은 매개 변수를 사용하지 않습니다.

WINHTTP_OPTION_EXTENDED_ERROR

이 스레드 컨텍스트에서 마지막으로 반환된 ERROR_WINHTTP_* 오류 메시지에 매핑된 Microsoft Windows 소켓 오류 코드가 포함된 부호 없는 긴 정수 값을 검색합니다. NULL을 핸들 값으로 전달할 수 있습니다.

WINHTTP_OPTION_FEATURE_SUPPORTED

제공된 옵션 플래그가 이 버전의 WinHTTP에서 지원되는지 확인합니다.

WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION

기본적으로 WinHttp에서 요청을 보낼 때 요청을 처리할 수 있는 연결이 없는 경우 WinHttp는 새 연결을 설정하려고 시도하며 요청은 이 새 연결에 바인딩됩니다. 이 옵션을 설정하면 이러한 요청이 사용 가능한 첫 번째 연결에서 대신 제공되며 반드시 설정되는 것은 아닙니다.

WINHTTP_OPTION_GLOBAL_PROXY_CREDS

hInternet 함수 매개 변수가 NULL로 설정된 WINHTTP_CREDS_EX 구조체에 대한 포인터를 사용합니다. 이 옵션을 사용하려면 레지스트리 키 HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. 이 레지스트리 키가 설정되지 않은 경우 WinHTTP는 오류 ERROR_WINHTTP_INVALID_OPTION 반환합니다. 이 레지스트리 키는 기본적으로 존재하지 않습니다. 설정되면 WinINet은 자격 증명을 WinHTTP로 보냅니다. WinHttp에서 인증 챌린지를 받을 때마다 현재 핸들에 설정된 자격 증명이 없으면 WinINet에서 제공하는 자격 증명을 사용합니다. 프록시 자격 증명 외에도 서버 자격 증명을 공유하려면 사용자가 WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS 설정해야 합니다.

WINHTTP_OPTION_GLOBAL_SERVER_CREDS

hInternet 함수 매개 변수가 NULL로 설정된 WINHTTP_CREDS_EX 구조체에 대한 포인터를 사용합니다. 이 옵션을 사용하려면 레지스트리 키 HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. 이 레지스트리 키가 설정되지 않은 경우 WinHTTP는 오류 ERROR_WINHTTP_INVALID_OPTION 반환합니다. 이 레지스트리 키는 기본적으로 존재하지 않습니다. 설정되면 WinINet은 자격 증명을 WinHTTP로 보냅니다. WinHttp에서 인증 챌린지를 받을 때마다 현재 핸들에 설정된 자격 증명이 없으면 WinINet에서 제공하는 자격 증명을 사용합니다. 프록시 자격 증명 외에도 서버 자격 증명을 공유하려면 사용자가 WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS 설정해야 합니다.

WINHTTP_OPTION_HANDLE_TYPE

전달된 HINTERNET 핸들의 형식을 포함하는 부호 없는 긴 정수 값을 검색합니다. 반환 값은 다음 중 하나일 수 있습니다.

용어 설명
WINHTTP_HANDLE_TYPE_CONNECT 핸들은 연결 핸들입니다.
WINHTTP_HANDLE_TYPE_REQUEST 핸들은 요청 핸들입니다.
WINHTTP_HANDLE_TYPE_SESSION 핸들은 세션 핸들입니다.

WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED

WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL 사용하도록 설정된 이외의 프로토콜 버전이 요청에 사용되지 않도록 합니다.

WINHTTP_OPTION_HTTP_PROTOCOL_USED

지정된 요청에 사용된 고급 HTTP 버전을 나타내는 DWORD를 가져옵니다. 가능한 값 목록은 WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL 참조하세요.

WINHTTP_OPTION_HTTP_VERSION

지원되는 HTTP 버전을 포함하는 HTTP_VERSION_INFO 구조를 설정하거나 검색합니다. 프로세스 전체 옵션입니다. 핸들에 NULL 을 사용합니다.

WINHTTP_OPTION_HTTP2_KEEPALIVE

WinHttp에서 HTTP/2 PING 프레임을 유지 메커니즘으로 사용하도록 세션 핸들에서 이 옵션을 설정할 수 있습니다. 호출자는 시간 제한을 밀리초 단위로 지정하고, 해당 시간 제한 기간 동안 연결에 대한 작업이 없으면 WinHttp는 HTTP/2 PING 프레임을 보내기 시작합니다. 호출자는 시간 제한 값을 5000밀리초 미만으로 설정할 수 없습니다.

WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING

이 옵션은 WinHttp 요청 핸들에서 설정하여 HTTP/2 응답에 "Transfer-Encoding" 헤더가 포함된 경우 WinHttp의 동작 방식을 제어할 수 있습니다. 이 경우 이 옵션이 FALSE로 설정된 경우 WinHttp에서 오류를 반환합니다.

WINHTTP_OPTION_HTTP2_RECEIVE_WINDOW

초기 HTTP/2 스트림 수신 창 크기 및 WINHTTP_HTTP2_RECEIVE_WINDOW 구조체를 사용하여 창 업데이트를 보내는 임계값을 설정합니다.

WINHTTP_OPTION_HTTP3_HANDSHAKE_TIMEOUT

버퍼를 사용하여 HTTP/3 핸드셰이크 시간 제한을 PDWORD로 밀리초 단위로 설정합니다.

WINHTTP_OPTION_HTTP3_INITIAL_RTT

msquic에서 사용하는 초기 RTT를 밀리초 단위로 구성합니다.

WINHTTP_OPTION_HTTP3_KEEPALIVE

연결에 대한 연결 유지 의미 체계를 사용하도록 설정합니다. 버퍼를 사용하여 유지 유지 시간 제한을 PDWORD로 밀리초 단위로 설정합니다.

WINHTTP_OPTION_HTTP3_STREAM_ERROR_CODE

요청을 보내는 데 사용되는 HTTP/3 스트림에서 서버 제공 오류를 검색합니다.

WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE

보안 연결에서 인증서 해지 목록을 다운로드할 수 없는 보안 인증서를 사용할 수 있습니다.

WINHTTP_OPTION_IPV6_FAST_FALLBACK

연결에 대해 IPv6 빠른 대체(더 행복한 안구)를 사용하도록 설정합니다. 이 동작은 IPv6이 신뢰할 수 없는 네트워크의 연결 시간을 개선하기 위해 RFC 6555 에 설명된 Happy Eyeballs 동작과 유사합니다.

  • 지정된 호스트에 대해 IPv6 및 IPv4 주소가 모두 확인되면 WinHttp는 짧은 시간 제한(300ms)으로 확인된 첫 번째 IPv6 주소에 연결하여 시작합니다.
  • 연결이 실패하면 WinHttp는 표준 시간 제한으로 확인된 첫 번째 IPv4 주소에 연결을 시도합니다.
  • 두 번째 연결이 실패하면 WinHttp는 표준 시간 제한으로 확인된 첫 번째 IPv6 주소를 다시 시도합니다.
  • 세 번째 연결이 실패하면 WinHttp는 나머지 주소에 대한 기본 동작으로 되돌리기 연결이 설정되거나 주소가 남아 있지 않을 때까지 표준 시간 제한이 있는 각 주소에 대한 연결을 시도합니다.

WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE

프록시 반환 연결 응답을 검색할 수 있는지 여부를 가져옵니다.

WINHTTP_OPTION_MATCH_CONNECTION_GUID

WINHTTP_MATCH_CONNECTION_GUID 구조체를 사용하여 WinHTTP에 일치하는 연결에서 요청을 제공하도록 지시합니다. WINHTTP_MATCH_CONNECTION_GUID_FLAG_REQUIRED 설정된 경우 일치하는 GUID가 있는 연결만 사용할 수 있습니다. 그렇지 않으면 GUID와 일치하는 연결 및 GUID로 표시되지 않은 연결을 사용할 수 있습니다.

WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER

HTTP/1.0 서버당 허용되는 최대 연결 수를 포함하는 부호 없는 긴 정수 값을 설정하거나 검색합니다. 기본값은 INFINITE입니다.

적용 대상: WINDOWS Vista SP1 이상; Windows Server 2008 이상.

WINHTTP_OPTION_MAX_CONNS_PER_SERVER

서버당 허용되는 최대 연결 수를 포함하는 부호 없는 긴 정수 값을 설정하거나 검색합니다. 기본값은 INFINITE입니다.

이 옵션을 0으로 설정하면 WinHTTP는 연결 수 제한을 2로 설정합니다.

WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS

WinHTTP가 따르는 최대 리디렉션 수를 설정합니다. 기본값은 10입니다. 이 제한은 권한이 없는 사이트에서 많은 수의 리디렉션에 따라 WinHTTP 클라이언트를 일시 중지하지 못하게 합니다.

적용 대상: WINDOWS XP SP1 이상; WINDOWS 2000 SP3 이상

WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE

최종 상태 코드를 WinHTTP 클라이언트로 반환하기 전에 무시된 정보 100-199 상태 코드 응답의 최대 수입니다. 정보 100-199 상태 코드는 최종 상태 코드 전에 서버에서 보낼 수 있으며 HTTP/1.1 사양에 설명되어 있습니다(자세한 내용은 RFC 2616 참조). 기본값은 10입니다.

적용 대상: WINDOWS XP SP1 이상; WINDOWS 2000 SP3 이상

WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE

연결을 재사용하기 위해 응답에서 드레이닝된 데이터의 양에 바인딩된 입니다(바이트 단위로 지정됨). 기본값은 1MB입니다.

적용 대상: WINDOWS XP SP1 이상; WINDOWS 2000 SP3 이상

WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE

서버 응답의 헤더 부분의 최대 크기에 대한 바인딩된 집합으로, 바이트로 지정됩니다. 이 바인딩은 무한량의 헤더 데이터가 포함된 응답을 전송하여 클라이언트를 중단하려는 권한 없는 서버로부터 클라이언트를 보호합니다. 기본값은 64KB입니다.

적용 대상: WINDOWS XP SP1 이상; WINDOWS 2000 SP3 이상

WINHTTP_OPTION_PARENT_HANDLE

이 핸들에 대한 부모 핸들을 검색합니다.

WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT

Passport 로그온 서버에서 제공하는 공동 브랜딩 텍스트가 포함된 문자열을 검색합니다. 이 옵션은 로그온 서버가 401 상태 코드로 응답한 직후에 검색되어야 합니다. 애플리케이션은 반환된 문자열을 보유할 수 있을 만큼 큰 버퍼 크기(바이트)를 전달해야 합니다.

WINHTTP_OPTION_PASSPORT_COBRANDING_URL

Passport 로그온 서버에서 제공하는 공동 브랜딩 그래픽의 URL이 포함된 문자열을 검색합니다. 이 옵션은 로그온 서버가 401 상태 코드로 응답한 직후에 검색해야 합니다. 애플리케이션은 반환된 문자열을 보유할 수 있을 만큼 큰 버퍼 크기(바이트)를 전달해야 합니다.

WINHTTP_OPTION_PASSPORT_RETURN_URL

Passport 반환 URL을 검색하는 요청 핸들에서 읽기 전용 옵션을 설정합니다.

WINHTTP_OPTION_PASSPORT_SIGN_OUT

Passport 로그인에서 로그아웃하는 세션 핸들의 옵션을 설정합니다. 애플리케이션은 WINHTTP_OPTION_PASSPORT_RETURN_URL 함께 검색된 Passport 반환 URL을 전달해야 합니다. 반환 URL과 관련된 모든 쿠키가 지워집니다.

WINHTTP_OPTION_PASSWORD

요청 핸들과 연결된 암호를 포함하는 문자열 값을 설정하거나 검색합니다.

WINHTTP_OPTION_PROXY

기존 세션 핸들 또는 요청 핸들의 프록시 데이터를 포함하는 WINHTTP_PROXY_INFO 구조를 설정하거나 검색합니다. 프록시 데이터를 검색할 때 애플리케이션은 GlobalFree 함수를 사용하여 이 구조체에 포함된 lpszProxylpszProxyBypass 문자열(NULL이 아닌 경우)을 해제해야 합니다. 애플리케이션은 NULL 핸들을 전달하여 전역 프록시 데이터(기본 프록시)를 쿼리할 수 있습니다.

WINHTTP_OPTION_PROXY_PASSWORD

프록시에 액세스하는 데 사용되는 암호를 포함하는 문자열 값을 설정하거나 검색합니다.

WINHTTP_OPTION_PROXY_SPN_USED

인증 중에 WinHTTP가 SSPI에 제공한 프록시 서버 보안 주체 이름을 가져옵니다. 이 문자열 값은 인증 실패 후 SspiPromptForCredentials 에 전달하는 데 사용됩니다.

WINHTTP_OPTION_PROXY_USERNAME

프록시에 액세스하는 데 사용되는 사용자 이름을 포함하는 문자열 값을 설정하거나 검색합니다.

WINHTTP_OPTION_QUIC_STATS

RTT 및 전송 및 수신된 바이트와 같은 연결 정보를 포함하는 QUIC_STATISTICS 구조를 검색합니다.

WINHTTP_OPTION_READ_BUFFER_SIZE

이 옵션은 더 이상 사용되지 않습니다. 효과가 없습니다.

WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE

프록시 응답 엔터티를 검색할 수 있는지 여부를 설정합니다. 이 옵션은 기본적으로 사용하지 않도록 설정됩니다.

WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT

요청에 대한 모든 응답 헤더를 받을 때까지 대기하기 위해 시간 제한 값(밀리초)이 포함된 부호 없는 긴 정수 값을 설정하거나 검색합니다. WinHTTP가 이 시간 제한 기간 내에 모든 헤더를 수신하지 못하면 요청이 취소됩니다. 기본 제한 시간 값은 90초입니다.

이 시간 제한은 소켓에서 데이터를 받은 경우에만 확인됩니다. 따라서 시간 제한이 만료되면 서버에서 더 많은 데이터가 도착할 때까지 클라이언트 애플리케이션에 알림이 표시되지 않습니다. 서버에서 데이터가 도착하지 않으면 WinHttpSetTimeouts 함수의 dwReceiveTimeout 매개 변수를 사용하여 설정된 시간 제한 값만큼 시간 제한 만료와 클라이언트 애플리케이션 알림 사이의 지연이 클 수 있습니다.

WINHTTP_OPTION_RECEIVE_TIMEOUT

요청에 대한 부분 응답을 받거나 일부 데이터를 읽기 위해 시간 제한 값(밀리초)을 포함하는 부호 없는 정수 값을 설정하거나 검색합니다. 응답이 이 제한 시간 값보다 오래 걸리면 요청이 취소됩니다. 기본 제한 시간 값은 30초입니다.

WINHTTP_OPTION_REDIRECT_POLICY

30x HTTP 리디렉션 상태 코드 처리와 관련하여 WinHTTP의 동작을 설정합니다. 이 옵션은 세션 또는 요청 핸들에서 다음 값 중 하나로 설정할 수 있습니다.

용어 설명
WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS 모든 리디렉션은 자동으로 수행됩니다.
WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP 보안(https) URL에서 안전하지 않은(http) URL로 시작되는 리디렉션을 제외한 모든 리디렉션이 수행됩니다. 이 값은 기본 설정입니다.
WINHTTP_OPTION_REDIRECT_POLICY_NEVER 리디렉션은 수행되지 않습니다. 30x 상태 애플리케이션에 반환됩니다.

WINHTTP_OPTION_REJECT_USERPWD_IN_URL

사용자 이름과 암호가 포함된 URL을 거부합니다. 또한 이 옵션은 사용자 이름 또는 암호가 지정되지 않은 경우에도 username:password 의미 체계를 포함하는 URL을 거부합니다. 예를 들어 "u:p@hostname", ":@hostname", "u:@hostname", ":p@hostname"은 모두 잘못된 것으로 플래그가 지정됩니다. 잘못된 URL이 함수에 전달되면 ERROR_WINHTTP_INVALID_URL 반환합니다. 이 옵션은 기본적으로 해제되어 있습니다.

WINHTTP_OPTION_REQUEST_ANNOTATION

제공된 주석 이름에 대한 요청 주석을 가져오고 설정할 수 있습니다. 이를 통해 호출자는 나중에 검색할 요청에 문자열을 연결하여 호출자가 유용하다고 판단하는 사용자 지정 논리로 요청을 식별할 수 있습니다.

WINHTTP_OPTION_REQUEST_PRIORITY

이 옵션은 더 이상 사용되지 않습니다. 효과가 없습니다.

WINHTTP_OPTION_REQUEST_STATS

요청에 대한 통계를 다시 처리합니다. 사용 가능한 통계 목록은 WINHTTP_REQUEST_STATS 참조하세요.

WINHTTP_OPTION_REQUEST_TIMES

요청에 대한 타이밍 정보를 다시 검색합니다. 사용 가능한 타이밍 목록은 WINHTTP_REQUEST_TIMES 참조하세요.

WINHTTP_OPTION_REQUIRE_STREAM_END

이 옵션은 WinHttp에 "Content-Length" 응답 헤더를 무시하고 END_STREAM 플래그가 수신될 때까지 스트림에서 계속 수신하도록 지시합니다.

WINHTTP_OPTION_RESOLUTION_HOSTNAME

이 옵션은 보내기 전에 WinHttp 요청 핸들에서 설정할 수 있습니다. 설정된 경우 WinHttp는 호출자가 제공한 문자열을 DNS 확인을 위한 호스트 이름으로 사용합니다.

WINHTTP_OPTION_RESOLVE_TIMEOUT

시간 제한 값(밀리초)이 포함된 부호 없는 긴 정수 값을 설정하거나 검색하여 호스트 이름을 resolve. 기본 시간 제한 값은 INFINITE입니다. 기본값이 아닌 값을 지정하면 이름 확인당 하나의 스레드 생성 오버헤드가 발생합니다.

WINHTTP_OPTION_REVERT_IMPERSONATION_SERVER_CERT

서버 인증서 체인을 빌드할 때 스레드 가장을 되돌리고 대신 프로세스 토큰을 사용하도록 강제합니다.

WINHTTP_OPTION_SECURE_PROTOCOLS

허용되는 보안 프로토콜을 지정하는 부호 없는 정수 값을 설정합니다.

  • Windows 11, Windows 10 및 Windows 8.1. 기본적으로 SSL3, TLS1.0, TLS1.1 및 TLS1.2만 사용하도록 설정됩니다.
  • Windows 8 및 Windows 7. 기본적으로 SSL3 및 TLS1만 사용하도록 설정됩니다.

값은 다음 값 중 하나 이상의 조합일 수 있습니다.

용어 설명
WINHTTP_FLAG_SECURE_PROTOCOL_ALL SSL(Secure Sockets Layer) 2.0, SSL 3.0 및 TLS(전송 계층 보안) 1.0 프로토콜을 사용할 수 있습니다.
WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 SSL 2.0 프로토콜을 사용할 수 있습니다.
WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 SSL 3.0 프로토콜을 사용할 수 있습니다.
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 TLS 1.0 프로토콜을 사용할 수 있습니다.
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 TLS 1.1 프로토콜을 사용할 수 있습니다.
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 TLS 1.2 프로토콜을 사용할 수 있습니다.
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3 TLS 1.3 프로토콜을 사용할 수 있습니다.

TLS 1.1 또는 TLS 1.2 프로토콜에 대한 지원을 추가해야 하지만 적절한 WINHTTP_OPTION_SECURE_PROTOCOLS 값을 사용하도록 애플리케이션을 다시 컴파일할 수 없는 경우 대신 레지스트리 항목을 추가할 DefaultSecureProtocols 수 있습니다. 해당 레지스트리 항목을 사용하면 WINHTTP_OPTION_SECURE_PROTOCOLS 플래그를 사용할 때 사용해야 하는 SSL 프로토콜을 지정할 수 있습니다.

중요

아래 지침에는 레지스트리 수정이 포함됩니다. 하지만, 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 이러한 지침을 주의 깊게 따라야 합니다. 추가적인 보호를 위해, 수정하기 전에 레지스트리를 백업하세요. 그러면 문제가 발생했을 때 레지스트리를 복원할 수 있습니다. 레지스트리를 백업하고 복원하는 방법에 대한 자세한 내용은 Windows에서 레지스트리를 백업하고 복원하는 방법을 참조하세요.

애플리케이션이 WINHTTP_OPTION_SECURE_PROTOCOLS 지정하면 시스템은 레지스트리 항목을 확인하고 DefaultSecureProtocols , 있는 경우 레지스트리 항목에 지정된 프로토콜을 사용하여 WINHTTP_OPTION_SECURE_PROTOCOLS 지정한 기본 프로토콜을 재정의 DefaultSecureProtocols 합니다. 레지스트리 항목이 없는 경우 WinHTTP는 WINHTTP_OPTION_SECURE_PROTOCOLS 기존 운영 체제 기본값을 사용합니다. 이러한 WinHTTP 기본값은 기존 우선 순위 규칙을 따르며 , WinHttpSetOption에서 애플리케이션별로 설정된 보안 채널(Schannel) 사용 안 함 프로토콜 및 프로토콜에 의해 재정의됩니다.

다음 경로에 DefaultSecureProtocols 레지스트리 항목을 추가할 수 있습니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

x64 기반 컴퓨터에서도 경로에 를 Wow6432Node 추가 DefaultSecureProtocols 해야 합니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

레지스트리 값은 DWORD 비트맵입니다. 사용할 값은 원하는 프로토콜에 해당하는 값을 추가하여 결정됩니다.

DefaultSecureProtocols 값 프로토콜 사용
0x00000008 기본적으로 SSL 2.0 사용
0x00000020 기본적으로 SSL 3.0 사용
0x00000080 기본적으로 TLS 1.0 사용
0x00000200 기본적으로 TLS 1.1 사용
0x00000800 기본적으로 TLS 1.2 사용

예를 들어 WINHTTP_OPTION_SECURE_PROTOCOLS 기본값을 재정의하여 TLS 1.1 및 TLS 1.2를 지정하려는 경우입니다. 이 경우 TLS 1.1(0x00000200) 값과 TLS 1.2(0x00000800) 값을 가져와 계산기(프로그래머 모드)에 함께 추가하면 결과 레지스트리 값이 0x00000A00.

WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT

SSL/TLS 서버의 인증서를 WINHTTP_CERTIFICATE_INFO 구조로 검색합니다. 애플리케이션은 LocalFree를 사용하여 lpszSubjectInfolpszIssuerInfo 멤버를 해제해야 합니다.

WINHTTP_OPTION_SECURITY_FLAGS

핸들의 보안 플래그를 포함하는 부호 없는 긴 정수 값을 설정하거나 검색합니다. 다음 값의 조합일 수 있습니다.

용어 설명
SECURITY_FLAG_IGNORE_CERT_CN_INVALID 인증서에서 잘못된 일반 이름을 허용합니다. 즉, 애플리케이션에서 지정한 서버 이름이 인증서의 일반 이름과 일치하지 않습니다. 이 플래그가 설정되면 애플리케이션은 WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID 콜백을 받지 않습니다.
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID 잘못된 인증서 날짜, 즉 만료되었거나 아직 유효하지 않은 인증서를 허용합니다. 이 플래그가 설정되면 애플리케이션은 WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID 콜백을 받지 않습니다.
SECURITY_FLAG_IGNORE_UNKNOWN_CA 잘못된 인증 기관을 허용합니다. 이 플래그가 설정되면 애플리케이션은 WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA 콜백을 받지 않습니다.
SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE 서버가 아닌 인증서(예: 클라이언트 인증서)를 사용하여 서버 ID를 설정할 수 있습니다.
SECURITY_FLAG_IGNORE_WEAK_SIGNATURE 약한 서명을 무시할 수 있습니다.
이 플래그는 Windows 7 및 Windows Server 2008 R2부터 각 OS에 대한 롤업 업데이트에서 사용할 수 있습니다.
SECURITY_FLAG_SECURE 보안 전송을 사용합니다. WinHttpQueryOption 호출에서만 반환됩니다.
SECURITY_FLAG_STRENGTH_MEDIUM 중간(56비트) 암호화를 사용합니다. WinHttpQueryOption 호출에서만 반환됩니다.
SECURITY_FLAG_STRENGTH_STRONG 강력한(128비트) 암호화를 사용합니다. WinHttpQueryOption 호출에서만 반환됩니다.
SECURITY_FLAG_STRENGTH_WEAK 약한(40비트) 암호화를 사용합니다. WinHttpQueryOption 호출에서만 반환됩니다.

WINHTTP_OPTION_SECURITY_INFO

요청에 대한 SChannel 연결 및 암호 정보를 다시 처리합니다.

WINHTTP_OPTION_SECURITY_KEY_BITNESS

암호화 키의 암호 강도를 포함하는 부호 없는 긴 정수 값을 검색합니다. 숫자가 클수록 암호화 강도 암호화가 더 강해지게 표시됩니다.

WINHTTP_OPTION_SEND_TIMEOUT

요청을 보내거나 일부 데이터를 쓰기 위해 시간 제한 값(밀리초)을 포함하는 부호 없는 긴 정수 값을 설정하거나 검색합니다. 요청을 보내는 데 시간 제한보다 오래 걸리면 보내기 작업이 취소됩니다. 기본 제한 시간은 30초입니다.

WINHTTP_OPTION_SERVER_CBT

CBT(채널 바인딩 토큰)를 지정하는 SecPkgContext_Bindings 구조체에 대한 포인터를 가져옵니다.

채널 바인딩 토큰은 보안 전송 채널의 속성이며 인증 채널을 보안 전송 채널에 바인딩하는 데 사용됩니다. 이 토큰은 SSL 연결이 설정된 후에만 이 옵션을 통해 얻을 수 있습니다.

참고

이 옵션과 lpBuffernull 값을 WinHttpQueryOption에 전달하면 lpdwBufferLength 매개 변수의 버퍼에 필요한 바이트 크기와 ERROR_INSUFFICIENT_BUFFER 반환됩니다. 이 반환된 버퍼 크기 값은 채널 바인딩 토큰에 대한 쿼리에 대한 후속 호출에서 전달될 수 있습니다. 채널 바인딩 토큰을 기반으로 요청 헤더를 수정하려는 경우 WINHTTP_CALLBACK_STATUS_REQUEST 처리할 때 이러한 단계가 필요합니다. Windows XP 및 Vista는 이 콜백 중에 요청 헤더 수정을 지원하지 않습니다.

WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT

서버 인증 체인 컨텍스트를 검색합니다. WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT 전달하여 협상된 SSL 연결 중에 받은 서버 인증서 체인의 CERT_CHAIN_CONTEXT 대한 중복 포인터를 가져올 수 있습니다. 클라이언트는 버퍼에 채워진 반환된 PCCERT_CONTEXT 포인터에서 CertFreeCertificateContext 를 호출해야 합니다.

WINHTTP_OPTION_SERVER_CERT_CONTEXT

서버 인증 컨텍스트를 검색합니다. WINHTTP_OPTION_SERVER_CERT_CONTEXT 전달하여 협상된 SSL 연결 중에 받은 서버 인증서에 대한 CERT CONTEXT 에 대한 중복 포인터를 가져올 수 있습니다. 클라이언트는 버퍼에 채워진 반환된 PCCERT_CONTEXT 포인터에서 CertFreeCertificateContext 를 호출해야 합니다.

WINHTTP_OPTION_SERVER_SPN_USED

인증 중에 WinHTTP가 SSPI에 제공한 서버 서버 보안 주체 이름을 가져옵니다. 이 문자열 값은 인증 실패 후 SspiPromptForCredentials 에 전달할 수 있습니다.

WINHTTP_OPTION_SPN

SPN(서비스 주체 이름)이 Kerberos 또는 Kerberos 협상 인증용으로 빌드된 경우 서버 포트 번호를 포함하거나 제거합니다. 이 플래그는 다음 값 중 하나입니다.

용어 설명
WINHTTP_DISABLE_SPN_SERVER_PORT 서버 포트 번호를 제거합니다.
WINHTTP_ENABLE_SPN_SERVER_PORT 서버 포트 번호를 포함합니다.

WINHTTP_OPTION_STREAM_ERROR_CODE

이 옵션은 WinHttp 요청 핸들에서 쿼리할 수 있으며 HTTP 스트림에서 수신된 RST_STREAM 프레임으로 표시된 오류 코드를 반환합니다.

WINHTTP_OPTION_TCP_FAST_OPEN

연결에 TCP 빠른 열기를 사용하도록 설정합니다.

WINHTTP_OPTION_TCP_KEEPALIVE

이 옵션은 WinHttp 세션 핸들에서 설정하여 기본 소켓에서 TCP 연결 유지 동작을 사용하도록 설정할 수 있습니다. tcp_keepalive 구조체를 사용합니다.

WINHTTP_OPTION_TLS_FALSE_START

연결에 대해 TLS False Start를 사용하도록 설정합니다.

WINHTTP_OPTION_TCP_PRIORITY_STATUS

WINHTTP_OPTION_TCP_PRIORITY_HINT 사용하여 TCP 소켓 집합의 힌트 우선 순위를 쿼리합니다. 자세한 내용은 SIO_SET_PRIORITY_HINT 설명서를 참조하세요.

WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK

이 옵션은 WinHttp 세션 핸들에서 설정하여 최신 프로토콜 버전이 있는 TLS 핸드셰이크 오류가 있는 경우 TLS 1.0으로의 대체가 허용되는지 여부를 제어할 수 있습니다.

WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT

특정 세션에 대한 마지막 콜백이 완료될 때 설정되는 이벤트를 사용합니다. 이 플래그는 세션 핸들에서 사용해야 합니다. 이벤트는 WinHTTP에서 설정한 후에야 닫을 수 있습니다.

WINHTTP_OPTION_UNSAFE_HEADER_PARSING

이 옵션은 내부용으로 예약되어 있으며 호출해서는 안 됩니다.

WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET

WinHttpSendRequest를 사용하여 WebSocket 핸드셰이크 프로세스를 시작하도록 스택에 지시합니다. 이 옵션은 매개 변수를 사용하지 않습니다.

WINHTTP_OPTION_URL

다운로드한 리소스의 전체 URL을 포함하는 문자열 값을 검색합니다. 원래 URL에 검색 문자열 또는 앵커와 같은 추가 데이터가 포함되어 있거나 호출이 리디렉션된 경우 반환된 URL은 원래 URL과 다릅니다. 애플리케이션은 반환된 URL을 와이드 char로 저장할 수 있을 만큼 큰 버퍼(바이트)를 전달해야 합니다.

WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS

BOOL을 사용하고 세션 핸들만 설정할 수 있습니다. 옵션이 설정된 후에 세션 핸들에서 만든 핸들로만 전파됩니다. TRUE이면 이 옵션을 통해 WinInet에서 푸시다운된 전역 서버 자격 증명을 최후의 수단으로 사용할 수 있습니다. 이 옵션의 기본값은 FALSE입니다. 이 옵션을 사용하려면 레지스트리 키 HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. 이 레지스트리 키는 기본적으로 존재하지 않습니다. 설정되면 WinINet은 자격 증명을 WinHTTP로 보냅니다. WinHttp가 인증 챌린지를 받을 때마다 현재 핸들에 설정된 자격 증명이 없으면 WinINet에서 제공하는 자격 증명을 사용합니다.

WINHTTP_OPTION_USE_SESSION_SCH_CRED

엔드포인트별 기본 자격 증명을 사용하는 대신 세션 내의 모든 엔드포인트에 대해 기본적으로 사용할 단일 자격 증명을 설정할 수 있습니다. 자격 증명 관리 오버헤드를 줄여 성능을 향상시킬 수 있습니다. 이 기본 자격 증명은 클라이언트 인증서가 명시적으로 제공될 때 영향을 주지 않습니다.

WINHTTP_OPTION_USER_AGENT

WinHttpAddRequestHeaders 또는 WinHttpSendRequest에서 추가한 헤더로 재정의되지 않는 한 WinHttpOpen에서 제공하고 후속 WinHttpSendRequest 함수에서 사용되는 핸들에서 사용자 에이전트 문자열을 설정하거나 검색합니다. 사용자 에이전트를 검색할 때 애플리케이션은 반환된 URL을 와이드 문자로 저장할 수 있을 만큼 큰 버퍼(바이트)를 전달해야 합니다. 사용자 에이전트를 설정할 때 버퍼 크기는 문자열의 길이(문자)와 NULL 종결자입니다.

WINHTTP_OPTION_USERNAME

사용자 이름을 포함하는 문자열을 설정하거나 검색합니다.

WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT

WinHttpWebSocketClose가 가까운 핸드셰이크를 완료하기 위해 기다려야 하는 시간을 밀리초 단위로 설정합니다. 기본값은 10초입니다.

WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL

연결을 통해 연결 유지 패킷을 보내는 간격(밀리초)을 설정합니다. 기본 간격은 30000(30초)입니다. 최소 간격은 15000(15초)입니다. WinHttpSetOption을 사용하여 15000보다 낮은 값을 설정하면 ERROR_INVALID_PARAMETER 함께 반환됩니다.

참고

WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL 기본값은 HKLM:\SOFTWARE\Microsoft\WebSocket\KeepaliveInterval에서 읽습니다. 값을 설정하지 않으면 기본값인 30000이 사용됩니다. 유지 간격이 15000밀리초보다 낮을 수 없습니다.

WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE

WebSocket 연결에 사용할 수신 버퍼 크기를 지정하는 DWORD를 설정하거나 검색합니다.

WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE

WebSocket 연결에 사용할 송신 버퍼 크기를 지정하는 DWORD를 설정하거나 검색합니다.

WINHTTP_OPTION_WORKER_THREAD_COUNT

스레드 풀이 비동기 완료에 사용해야 하는 작업자 스레드 수를 지정하는 부호 없는 긴 정수 값을 설정합니다. 이 옵션의 기본값은 0으로, 작업자 스레드 수가 시스템의 CPU 수와 같도록 지정합니다. 이 옵션은 비동기 작업이 발생하기 전에 NULLHINTERNET 핸들에서만 설정할 수 있습니다. 이 옵션은 한 번만 설정할 수 있습니다.

적용 대상: Windows 7 이상; Windows Server 2008 R2 이상.

WINHTTP_OPTION_WRITE_BUFFER_SIZE

이 옵션은 더 이상 사용되지 않습니다. 효과가 없습니다.

설명

다음 표에서는 작업할 수 있는 핸들, 쿼리 및 설정 가능 여부 및 사용되는 데이터 형식을 지정하여 옵션 플래그를 나열합니다. "X"는 옵션 플래그가 함수 또는 핸들과 함께 사용할 수 있음을 나타내고 "-"는 옵션 플래그가 유효하지 않음을 지정합니다.

지원되지 않는 Windows 버전에서 옵션 플래그를 설정하거나 쿼리하려고 하면 ERROR_WINHTTP_INVALID_OPTION.

옵션 플래그 및 데이터 형식 세션 핸들 요청 핸들 쿼리 옵션 SET 옵션 최소 Windows 버전
WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS
Bool
X - - X -
WINHTTP_OPTION_AUTOLOGON_POLICY
DWORD
- X - X -
WINHTTP_OPTION_BACKGROUND_CONNECTIONS
DWORD
X - - X Windows 10 버전 21H1
WINHTTP_OPTION_CALLBACK
LPVOID
X X X X -
WINHTTP_OPTION_CLIENT_CERT_CONTEXT
CERT_CONTEXT
- X - X Windows Vista
WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST
SecPkgContext_IssuerListInfoEx
- X X - Windows Vista
WINHTTP_OPTION_CODEPAGE
DWORD
X - - X -
WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH
DWORD
X - - X -
WINHTTP_OPTION_CONNECT_RETRIES
DWORD
X X X X -
WINHTTP_OPTION_CONNECT_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_CONNECTION_INFO
WINHTTP_CONNECTION_INFO
- X X - -
WINHTTP_OPTION_CONNECTION_STATS_V0
TCP_INFO_v0
- X X - Windows 10 버전 1903
WINHTTP_OPTION_CONNECTION_STATS_V1
TCP_INFO_v1
- X X - Windows 10 버전 2004
WINHTTP_OPTION_CONTEXT_VALUE
DWORD_PTR
X X X X -
WINHTTP_OPTION_DECOMPRESSION
DWORD
X X - X Windows 8.1
WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING
Bool
X - - X Windows 10 버전 21H1
WINHTTP_OPTION_DISABLE_FEATURE
DWORD
- X - X -
WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK
Bool
X - - X Windows 10 버전 1903
WINHTTP_OPTION_DISABLE_STREAM_QUEUE
Bool
X X - X Windows 10 버전 1809
WINHTTP_OPTION_ENABLE_FEATURE
DWORD
* * - X -
WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL
DWORD
X X - X Windows 10 버전 1607
WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT_CONTEXT
Bool
X - - X Windows 10 버전 21H1
WINHTTP_OPTION_ENABLETRACING
DWORD
- - X X -
WINHTTP_OPTION_ENCODE_EXTRA
Bool
X X - X Windows 10 버전 1803
WINHTTP_OPTION_EXPIRE_CONNECTION
해당 없음
- X - X Windows 10 버전 1903
WINHTTP_OPTION_EXTENDED_ERROR
DWORD
X X X - -
WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION
Bool
X - - X Windows 10 버전 21H1
WINHTTP_OPTION_GLOBAL_PROXY_CREDS
WINHTTP_CREDS
X X - X -
WINHTTP_OPTION_GLOBAL_SERVER_CREDS
WINHTTP_CREDS_EX
X X - X -
WINHTTP_OPTION_HANDLE_TYPE
DWORD
X X X - -
WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED
Bool
X X - X Windows 10 버전 1903
WINHTTP_OPTION_HTTP_PROTOCOL_USED
DWORD
- X X - Windows 10 버전 1607
WINHTTP_OPTION_HTTP_VERSION
HTTP_VERSION_INFO
X X X X -
WINHTTP_OPTION_HTTP2_KEEPALIVE
DWORD
X - - X Windows 10 버전 21H1
WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING
Bool
X X - X Windows 10 버전 21H1
WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE
Bool
- X - X Windows 10 버전 2004
WINHTTP_OPTION_IPV6_FAST_FALLBACK
Bool
X - - X Windows 10 버전 1903
WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE
Bool
X X X - -
WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER
DWORD
X - X X -
WINHTTP_OPTION_MAX_CONNS_PER_SERVER
DWORD
X - X X -
WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS
DWORD
X X X X -
WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE
DWORD
X X X X -
WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE
DWORD
X X X X -
WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE
DWORD
X X X X -
WINHTTP_OPTION_PARENT_HANDLE
HINTERNET
X X X - -
WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT
LPWSTR
- X X - -
WINHTTP_OPTION_PASSPORT_COBRANDING_URL
LPWSTR
- X X - -
WINHTTP_OPTION_PASSPORT_RETURN_URL
LPVOID
- X X - -
WINHTTP_OPTION_PASSPORT_SIGN_OUT
LPVOID
X - - X -
WINHTTP_OPTION_PASSWORD
LPWSTR
- X X X -
WINHTTP_OPTION_PROXY
WINHTTP_PROXY_INFO
X X X X -
WINHTTP_OPTION_PROXY_PASSWORD
LPWSTR
- X X X -
WINHTTP_OPTION_PROXY_SPN_USED
LPWSTR
- X X - -
WINHTTP_OPTION_PROXY_USERNAME
LPWSTR
- X X X -
WINHTTP_OPTION_READ_BUFFER_SIZE
DWORD
- X X X -
WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE
Bool
X X - X -
WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_RECEIVE_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_REDIRECT_POLICY
DWORD
X X X X -
WINHTTP_OPTION_REJECT_USERPWD_IN_URL
Bool
- X - X -
WINHTTP_OPTION_REQUEST_PRIORITY
DWORD
- X X X -
WINHTTP_OPTION_REQUEST_STATS
WINHTTP_REQUEST_STATS
- X X - Windows 10 버전 1903
WINHTTP_OPTION_REQUEST_TIMES
WINHTTP_REQUEST_TIMES
- X X - Windows 10 버전 1903
WINHTTP_OPTION_REQUIRE_STREAM_END
Bool
X X - X Windows 10 버전 21H1
WINHTTP_OPTION_RESOLUTION_HOSTNAME
LPWSTR
- X - X Windows 10 버전 21H1
WINHTTP_OPTION_RESOLVE_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_SECURE_PROTOCOLS
DWORD
X - - X -
WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT
WINHTTP_CERTIFICATE_INFO
- X X - -
WINHTTP_OPTION_SECURITY_FLAGS
DWORD
- X X X -
WINHTTP_OPTION_SECURITY_INFO
WINHTTP_SECURITY_INFO
- X X - Windows 10 버전 2004
WINHTTP_OPTION_SECURITY_KEY_BITNESS
DWORD
- X X - -
WINHTTP_OPTION_SEND_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_SERVER_CBT
SecPkgContext_Bindings*
- X X - -
WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT
CERT_CHAIN_CONTEXT
- X X - Windows 10 버전 2004
WINHTTP_OPTION_SERVER_CERT_CONTEXT
CERT 컨텍스트
- X X - -
WINHTTP_OPTION_SERVER_SPN_USED
LPWSTR
- X X - -
WINHTTP_OPTION_SPN
DWORD
- X - X -
WINHTTP_OPTION_STREAM_ERROR_CODE
DWORD
- X X - Windows 10 버전 21H1
WINHTTP_OPTION_TCP_FAST_OPEN
Bool
X - - X Windows 10 버전 2004
WINHTTP_OPTION_TCP_KEEPALIVE
tcp_keepalive
X - - X Windows 10 버전 2004
WINHTTP_OPTION_TLS_FALSE_START
Bool
X - - X Windows 10 버전 2004
WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK
Bool
X - - X Windows 10 버전 21H1
WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT
HINTERNET
X - - X -
WINHTTP_OPTION_UNSAFE_HEADER_PARSING
DWORD
- X - X -
WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET
해당 없음
- X - X -
WINHTTP_OPTION_URL
LPWSTR
- X X - -
WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS
Bool
X X - X -
WINHTTP_OPTION_USER_AGENT
LPWSTR
X - X X -
WINHTTP_OPTION_USERNAME
LPWSTR
- X X X -
WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT
DWORD
- - X X -
WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL
DWORD
- - X X -
WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE
DWORD
X X X X Windows 8.1
WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE
DWORD
X X X X Windows 8.1
WINHTTP_OPTION_WORKER_THREAD_COUNT
DWORD
- - - X -
WINHTTP_OPTION_WRITE_BUFFER_SIZE
DWORD
- X X X -

참고

Windows XP 및 Windows 2000의 경우 런타임 요구 사항을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP, Windows 2000 Professional SP3 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003, Windows 2000 Server SP3 [데스크톱 앱만 해당]
재배포 가능 파일 Windows XP 및 Windows 2000에서 WinHTTP 5.0 및 인터넷 Explorer 5.01 이상.
헤더 Winhttp.h

추가 정보