WinHTTP 정보
참고
Windows 10 버전 1709 이후의 앱 컨테이너 및 시스템 서비스의 경우 HTTP/2(RFC7540 참조)는 기본적으로 켜져 있습니다.
WinHTTP(Microsoft Windows HTTP 서비스)는 HTTP/2 및 1.1 인터넷 프로토콜에 대한 서버 지원 상위 수준 인터페이스를 제공합니다. WinHTTP는 HTTP 서버와 통신하는 서버 애플리케이션에서 주로 서버 기반 시나리오에서 사용하도록 설계되었습니다.
WinINet 은 대화형 데스크톱 애플리케이션을 위한 HTTP 클라이언트 플랫폼으로 설계되었습니다. WinINet은 사용자 자격 증명 수집과 같은 일부 작업에 대한 사용자 인터페이스를 표시합니다. 그러나 WinHTTP는 이러한 작업을 프로그래밍 방식으로 처리합니다. HTTP 클라이언트 서비스가 필요한 서버 애플리케이션은 WinINet 대신 WinHTTP를 사용해야 합니다. 자세한 내용은 WinINet 애플리케이션을 WinHTTP로 포팅을 참조하세요.
WinHTTP는 시스템 서비스 및 HTTP 기반 클라이언트 애플리케이션에서도 사용하도록 설계되었습니다. 그러나 FTP 프로토콜 기능, 쿠키 지속성, 캐싱, 자동 자격 증명 대화 처리, 인터넷 Explorer 호환성 또는 하위 플랫폼 지원이 필요한 단일 사용자 애플리케이션은 WinINet 사용을 고려해야 합니다.
이 인터페이스는 WinHTTP API(애플리케이션 프로그래밍 인터페이스)를 사용하거나 IWinHttpRequest 및 IWinHttpRequestEvents 인터페이스를 사용하여 C/C++에서 액세스할 수 있습니다. WinHTTP는 WinHTTP 개체를 통해 스크립트 및 Microsoft Visual Basic에서도 액세스할 수 있습니다. 개별 함수에 대한 자세한 내용과 설명은 특정 언어에 대한 WinHTTP 함수 참조를 참조하세요.
Windows 8 WinHTTP는 WinHttpWebSocketSend 및 WinHttpWebSocketReceive와 같은 WebSocket Protocoll을 사용하여 연결을 사용하도록 설정하는 API를 제공합니다.
주의
WinHTTP는 비동기 완료 콜백 중을 제외하고는 재진입되지 않습니다. 즉, 스레드에 WinHttpSendRequest, WinHttpReceiveResponse, WinHttpQueryDataAvailable, WinHttpSendData 또는 WinHttpWriteData와 같은 WinHTTP 함수 중 하나에 대한 호출이 보류 중이지만 첫 번째 호출이 완료될 때까지 WinHTTP를 두 번째로 호출해서는 안 됩니다. 두 번째 호출이 발생할 수 있는 한 가지 시나리오는 다음과 같습니다. 애플리케이션이 WinHTTP를 호출하는 스레드에 APC(비동기 프로시저 호출)를 큐에 대기하고 WinHTTP가 내부적으로 경고 대기를 수행하는 경우 APC를 실행할 수 있습니다. APC 루틴이 WinHTTP를 호출하는 경우에도 발생하는 경우 WinHTTP API를 다시 입력하고 WinHTTP의 내부 상태가 손상될 수 있습니다.
WinHTTP 5.1 기능
다음 기능은 WinHTTP 버전 5.1에 추가되었습니다.
- IPv6 지원.
- AutoProxy 기능.
- 연결 유지(영구) 연결 및 세션 쿠키에 대한 지원을 포함하여 HTTP/1.0 프로토콜.
- HTTP 응답에 대한 HTTP/1.1 청크 분할 전송 지원.
- 세션 간에 익명 연결의 연결 유지 풀링.
- 클라이언트 인증서를 포함한 SSL(Secure Sockets Layer) 기능 지원되는 SSL 프로토콜에는 SSL 2.0, SSL 3.0 및 TLS(전송 계층 보안) 1.0이 포함됩니다.
- Microsoft Passport 1.4 및 Negotiate/ Kerberos 패키지에 대한 통합 지원을 포함하여 서버 및 프록시 인증에 대한 지원.
- 표시되지 않는 한 리디렉션의 자동 처리입니다.
- API 외에 스크립팅 가능한 인터페이스입니다.
- 문제를 해결하는 데 도움이 되는 추적 유틸리티입니다.
WINHTTP에서는 URL 캐싱 및 영구 쿠키, 자동 프록시, 자동 진단, 오프라인 지원 및 FTP(파일 전송 프로토콜)를 비롯한 다양한 WinINet 기능이 지원되지 않습니다.
버전 5.1에 도입된 변경 내용에 대한 자세한 내용은 WinHTTP 5.1의 새로운 기능 을 참조하세요.
WinHTTP를 사용한 시작
WinHTTP에 대한 자세한 내용은 다음 topics 참조하세요.
- WinINet과 WinHTTP 는 HTTP에 액세스하기 위한 두 가지 기술을 비교합니다.
- WinHTTP 버전은 WinHTTP의 버전 기록을 설명합니다.
- WinHTTP 5.1의 새로운 기능은 WinHTTP 5.1 의 변경 내용과 새로운 기능에 대해 설명합니다.
- 네트워크 용어 는 일반적으로 네트워킹 및 특히 HTTP 프로토콜과 관련된 유용한 개념과 용어를 설명합니다.
- WinHTTP 인터페이스를 선택하면 WinHTTP 용 C/C++ API 및 COM 인터페이스가 설명됩니다.
- WinHTTP 보안 고려 사항은 WinHTTP 를 사용할 때 알아야 할 보안 문제를 설명합니다.
- WinINet 애플리케이션을 WinHTTP로 포팅하면 WinHTTP API를 사용하도록 기존 WinINet 애플리케이션을 수정하는 방법을 설명합니다.