Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Important
A megfelelő Windows HTTP-verem kiválasztása
| Scenario | Ajánlott API |
|---|---|
| Windows szolgáltatás, démon vagy kiszolgálóoldali kód | WinHTTP – szolgáltatásokhoz tervezve; támogatja a megszemélyesítést, a munkamenet-elkülönítést |
| IE-proxybeállításokat, cookie-kat vagy hitelesítő adatokat kérő asztali alkalmazás | WinINet – automatikusan örökli a felhasználó Internetbeállítások konfigurációját |
| Modern C++ alkalmazás (UWP vagy Desktop) | Windows.Web.Http (C++/WinRT) – modern, elsődlegesen aszinkronra épülő, modern TLS-támogatás |
| .NET-alkalmazás | System.Net.Http.HttpClient – felügyelt, platformfüggetlen, készletezett kapcsolatok |
| Platformközi C/C++ | libcurl vagy a platform HTTP-könyvtárai – nem Windows-specifikus |
A WinINet főbb eltérései: A WinHTTP nem oszt meg cookie-kat, gyorsítótárat vagy hitelesítő adatokat a felhasználó böngészőjével. Nincs felhasználói felületi kérése. Támogatja a szolgáltatásfiókok és a megszemélyesítés futtatását. A teljes funkció összehasonlítása a WinINet és a WinHTTP között található.
Jegyzet
Biztonsági alapértékek – A WinHTTP a TLS-verzió egyeztetéséhez az operációs rendszer Schannel-konfigurációját követi. Mindig ellenőrizze a szervertanúsítványokat; éles környezetben soha ne állítsa a(z) WINHTTP_OPTION_SECURITY_FLAGS értéket úgy, hogy figyelmen kívül hagyja a tanúsítványhibákat. A TLS-konfigurációval kapcsolatban lásd a WinHTTP biztonsági szempontjait.
Jegyzet
Az alkalmazástárolók és a rendszerszolgáltatások esetében a Windows 10 1709-es verziója óta a HTTP/2 (lásd RFC7540) alapértelmezés szerint be van kapcsolva.
A Microsoft Windows HTTP Services (WinHTTP) egy kiszolgáló által támogatott, magas szintű felületet biztosít a HTTP/2 és az 1.1 internetes protokollhoz. A WinHTTP elsősorban a HTTP-kiszolgálókkal kommunikáló kiszolgálói alkalmazások kiszolgálóalapú forgatókönyveiben használható.
WinINet http-ügyfélplatformként tervezték interaktív asztali alkalmazásokhoz. A WinINet megjelenít egy felhasználói felületet bizonyos műveletekhez, például a felhasználói hitelesítő adatok gyűjtéséhez. A WinHTTP azonban programozott módon kezeli ezeket a műveleteket. A HTTP-ügyfélszolgáltatásokat igénylő kiszolgálóalkalmazások WinINet helyett WinHTTP-t használnak. További információ: WinINet-alkalmazások portolása WinHTTP.
A WinHTTP rendszerszolgáltatásokhoz és HTTP-alapú ügyfélalkalmazásokhoz is használható. Az FTP-protokoll funkcióit, a cookie-megőrzést, a gyorsítótárazást, az automatikus hitelesítő adatok párbeszédpanel-kezelését, az Internet Explorer kompatibilitását vagy az alsó szintű platformtámogatást igénylő egyfelhasználós alkalmazásoknak azonban érdemes megfontolni WinINethasználatát.
Ez a felület a C/C++-ról érhető el a WinHTTP alkalmazásprogramozási felület (API) vagy az IWinHttpRequest és IWinHttpRequestEvents interfészek használatával. A WinHTTP szkriptből és a Microsoft Visual Basicből is elérhető a WinHTTP objektumon keresztül. Az egyes függvényekkel kapcsolatos további információkért és leírásért tekintse meg az adott nyelv WinHTTP-függvényekre vonatkozó hivatkozását.
A Windows 8-tól kezdve a WinHTTP api-kat biztosít a WebSocket Protocoll használatával történő kapcsolatok engedélyezéséhez, például WinHttpWebSocketSend és WinHttpWebSocketReceive.
Vigyázat
A WinHTTP csak az aszinkron befejezési visszahívás során lesz újra meghívva. Ez azt jelzi, hogy míg egy szál hívása függőben van az egyik WinHTTP-függvényhez, például a WinHttpSendRequest, a WinHttpReceiveResponse, a WinHttpQueryDataAvailable, a WinHttpSendData vagy a WinHttpWriteData függvényhez, az első hívás befejezéséig nem hívhatja meg másodszor a WinHTTP-t. Az egyik forgatókönyv, amelyben egy második hívás történhet, a következő: Ha egy alkalmazás sorba állít egy aszinkron eljáráshívást (APC) a szálhoz, amely a WinHTTP-ba hív, és ha a WinHTTP belsőleg riasztási várakozást hajt végre, az APC futtathatóvá válik. Ha előfordul, hogy az APC-rutin meghívja a WinHTTP-t, az újra belép a WinHTTP API-ba, és a WinHTTP belső állapota felborulhat.
A WinHTTP 5.1 funkciói
A WinHTTP 5.1-es verziójában a következő funkciók lettek hozzáadva:
- IPv6-támogatás.
- AutoProxy képességek.
- HTTP/1.0 protokoll, beleértve az életben maradó (állandó) kapcsolatok és a munkamenet-cookie-k támogatását.
- HTTP/1.1 adattömbátvitel támogatása HTTP-válaszokhoz.
- Névtelen kapcsolatok folyamatosan élő fenntartása a munkamenetek között.
- A Secure Sockets Layer (SSL) funkciói, beleértve az ügyféltanúsítványokat is. A támogatott SSL-protokollok a következők: SSL 2.0, SSL 3.0 és Transport Layer Security (TLS) 1.0.
- A kiszolgáló- és proxyhitelesítés támogatása, beleértve a Microsoft Passport 1.4 integrált támogatását, valamint a Kerberos csomag egyeztetését és.
- Az átirányítások automatikus kezelése, hacsak nincs letiltva.
- Szkriptelhető felület az API mellett.
- Nyomkövetési segédprogram a problémák elhárításához.
A WinHTTP-ban számos WinINet funkció nem támogatott, beleértve az URL-gyorsítótárazást, az állandó cookie-kat, az autoproxyt, az automatikus tárcsázást, az offline támogatást és a Fájlátviteli Protokollt (FTP).
Az 5.1-es verzióban bevezetett módosításokról további információt A WinHTTP 5.1 újdonságaicímű témakörben talál.
A WinHTTP használatának első lépései
A WinHTTP-ról az alábbi témakörökben talál további információt.
- WinINet és a WinHTTP összehasonlítja a HTTP eléréséhez szükséges két technológiát.
- WinHTTP-verziók ismerteti a WinHTTP verzióelőzményeit.
- A WinHTTP 5.1 újdonságai a WinHTTP 5.1 változásait és új funkcióit ismertetik.
- hálózati terminológia a hálózatkezeléssel kapcsolatos általános fogalmakat és terminológiát, különösen a HTTP protokollt ismerteti.
- WinHTTP-felület kiválasztása a C/C++ API-t és a WinHTTP COM-felületét ismerteti.
- WinHTTP biztonsági megfontolások a WinHTTP használatakor figyelembe veendő biztonsági problémákat ismertetik.
- WinINet-alkalmazások WinHTTP-ba történő portolása ismerteti, hogyan módosíthatja meglévő WinINet-alkalmazásait a WinHTTP API használatára.