Informace o winHTTP
Poznámka
Kontejnery aplikací a systémové služby od Windows 10 verze 1709, HTTP/2 (viz RFC7540) jsou ve výchozím nastavení zapnuté.
Služba Microsoft Windows HTTP Services (WinHTTP) poskytuje serverově podporované rozhraní vysoké úrovně pro internetové protokoly HTTP/2 a 1.1. WinHTTP je navržený tak, aby se používal především v serverových scénářích serverových aplikací, které komunikují se servery HTTP.
WinINet byla navržena jako klientská platforma HTTP pro interaktivní desktopové aplikace. WinINet zobrazí uživatelské rozhraní pro některé operace, jako je například shromažďování přihlašovacích údajů uživatele. WinHTTP ale zpracovává tyto operace prostřednictvím kódu programu. Serverové aplikace, které vyžadují klientské služby HTTP, by měly místo WinINet používat WinHTTP. Pro více informací viz Portování aplikací WinINet na WinHTTP.
WinHTTP je také navržený pro použití v systémových službách a klientských aplikacích založených na protokolu HTTP. Aplikace s jedním uživatelem, které vyžadují funkce protokolu FTP, trvalost souborů cookie, ukládání do mezipaměti, automatické zpracování dialogových oken přihlašovacích údajů, kompatibilitu Internet Exploreru nebo podporu nižší platformy by však měly zvážit použití WinINet.
Toto rozhraní je přístupné z C/C++ buď pomocí aplikačního programovacího rozhraní (API) WinHTTP, nebo pomocí rozhraní IWinHttpRequest a IWinHttpRequestEvents rozhraní. WinHTTP je také přístupný ze skriptu a jazyka Microsoft Visual Basic prostřednictvím objektu WinHTTP. Další informace a popisy jednotlivých funkcí najdete v referenčních informacích k funkcím WinHTTP pro konkrétní jazyk.
Počínaje Windows 8 poskytuje WinHTTP rozhraní API pro umožnění připojení pomocí protokolu WebSocketl, například WinHttpWebSocketSend a WinHttpWebSocketReceive.
Opatrnost
WinHTTP není znovuvstupný, s výjimkou během zpětného volání při asynchronním dokončení. To znamená, že zatímco vlákno má volání čekající na jednu z funkcí WinHTTP, jako je WinHttpSendRequest, WinHttpReceiveResponse, WinHttpQueryDataAvailable, WinHttpSendData nebo WinHttpWriteData, nesmí nikdy volat WinHTTP podruhé, dokud se první volání nedokončí. Jedním ze scénářů, ve kterém může dojít k druhému volání, je následující: Pokud aplikace zařadí asynchronní procedurální volání (APC) do vlákna, které volá do WinHTTP, a pokud WinHTTP provede interně čekání s možností upozornění, může se APC spustit. Pokud rutina APC také volá WinHTTP, znovu vstoupí do rozhraní WinHTTP API a může dojít k poškození vnitřního stavu WinHTTP.
Funkce WinHTTP 5.1
Ve verzi 5.1 winHTTP byly přidány následující funkce:
- Podpora protokolu IPv6
- Možnosti AutoProxy.
- Protokol HTTP/1.0, včetně podpory udržování spojení a relačních cookies.
- Podpora přenosu dat metodou chunked HTTP/1.1 pro odpovědi HTTP.
- Udržování sdružování anonymních připojení mezi relacemi
- Funkce SSL (Secure Sockets Layer), včetně klientských certifikátů. Mezi podporované protokoly SSL patří: SSL 2.0, SSL 3.0 a TLS (Transport Layer Security) 1.0.
- Podpora ověřování serveru a proxy serveru, včetně integrované podpory pro Microsoft Passport 1.4 a balíček Negotiate/Kerberos.
- Automatické zpracování přesměrování, pokud není potlačeno.
- Skriptovatelné rozhraní kromě rozhraní API.
- Utilita trasování, která pomáhá při řešení problémů.
WinHTTP nepodporuje celou řadu funkcí winINet, včetně ukládání adres URL do mezipaměti a trvalých souborů cookie, automatického generování, podpory offline a protokolu FTP (File Transfer Protocol).
Další informace o změnách zavedených ve verzi 5.1 najdete v tématu Co je nového v systému WinHTTP 5.1.
Začínáme s WinHTTP
Další informace o službě WinHTTP najdete v následujících tématech.
- WinINet vs. WinHTTP porovnává dvě technologie pro přístup k protokolu HTTP.
- Verze WinHTTP - popis historie verzí WinHTTP.
- Novinky ve WinHTTP 5.1 popisuje změny a nové funkce ve WinHTTP 5.1.
- terminologie sítě popisuje užitečné koncepty a terminologii týkající se sítí obecně a zejména protokolu HTTP.
- Volba rozhraní WinHTTP popisuje rozhraní C/C++ a rozhraní COM pro WinHTTP.
- Bezpečnostní úvahy WinHTTP popisují problémy se zabezpečením, na které byste měli být upozorněni při používání WinHTTP.
- portování aplikací WinINet do winHTTP popisuje, jak upravit stávající aplikace WinINet tak, aby používaly rozhraní API WinHTTP.