Sdílet prostřednictvím


Terminologie sítě (WinHTTP)

Při vývoji aplikace, která používá službu Microsoft Windows HTTP Services (WinHTTP), je důležité pochopit následující koncepty a terminologii, které se týkají sítí obecně a zejména protokolu HTTP.

Transakce HTTP

Při práci s transakcemi HTTP vyměňujete informace s jiným počítačem jinde v síti. Vyměňované informace můžou být soubor, který obsahuje text nebo multimédia, nebo se může jednat o výsledky databázového dotazu. Část informací vyměňovaných přes síť se nazývá prostředek. Obvykle je počítač, který odesílá prostředek, server a počítač, který přijímá tento prostředek, je klient. Klient ale může také publikovat data na server. Někdy transakce HTTP zahrnuje server střední vrstvy. Server střední vrstvy shromažďuje několik prostředků z jiných serverů, zkompiluje informace do jednoho prostředku a odesílá tento prostředek klientovi.

Proces získání prostředku pomocí protokolu HTTP vyžaduje, aby se mezi klientem a serverem vyměňovala řada zpráv. Klient zahájí transakci odesláním zprávy, která požaduje prostředek. Tato zpráva se nazývá požadavek HTTP nebo někdy jen požadavek. Požadavek HTTP se skládá z následujících komponent.

  • Metoda, identifikátor URI (Uniform Resource Identifier), číslo verze protokolu
  • Hlavičky
  • Tělo entity

Když server obdrží požadavek, odpoví odesláním zprávy zpět klientovi. Zpráva odeslaná serverem se nazývá odpověď HTTP. Odpověď HTTP se skládá z následujících komponent.

  • Číslo verze protokolu, stavový kód, text stavu
  • Hlavičky
  • Tělo entity

Odpověď buď značí, že požadavek nelze zpracovat, nebo poskytuje požadované informace. V závislosti na typu požadavku to mohou být informace o prostředku, jako je jeho velikost a typ, nebo může být nějaký nebo celý samotný prostředek. Část odpovědi, která obsahuje některý nebo všechny požadované prostředky, se nazývá "data odpovědi" nebo "tělo entity" a odpověď se nedokončí, dokud nebudou přijata všechna data odpovědi.

Podrobné informace o transakcích HTTP a protokolu HTTP naleznete v tématu RFC 2616, Hypertext Transfer Protocol – HTTP/1.1.

Proxy servery

I když cílový server nakonec obdrží požadavek odeslaný klientem, někdy transakce nejprve prochází proxy serverem. Proxy server zachytí požadavek a před odesláním na server může požadavek dokonce upravit. Když server odpoví, odpověď také prochází proxy serverem předtím, než se předá klientovi. Proxy může upravit hlavičky v této odpovědi.

Zachycováním a překladem síťových transakcí může proxy server:

  • Chraňte klienta monitorováním potenciálně nebezpečných transakcí.
  • Povolte klientovi komunikaci pomocí protokolů, které nemusí být implementovány klientským softwarem.
  • Funguje jako brána mezi privátní sítí a veřejnou sítí.

Rozhraní WinHTTP API obsahuje konfigurační nástroj proxy serveru, který umožňuje poskytnout službě WinHTTP informace týkající se všech proxy serverů, které zachycují vaše transakce HTTP. Informace o použití nástroje pro konfiguraci proxy serveru naleznete v tématu ProxyCfg.exe, nástroj konfigurace proxy serveru.

Synchronní a asynchronní režimy

Existují dva programovací modely pro získání prostředků přes síť pomocí WinHTTP – synchronních a asynchronních modelů. V synchronním modelu se volání funkce nebo metody nedokončí, dokud se požadovaná operace nedokončí nebo dokud nedojde k chybě. Když například vaše aplikace požádá o prostředek synchronně pomocí WinHTTP, nebude pokračovat dalším krokem, dokud nebudou přijata požadovaná data.

Asynchronní model na druhé straně umožňuje aplikaci provádět další úlohy, zatímco čeká na načtení prostředku. Pokud je volána jiná funkce nebo metoda WinHTTP a předchozí operace nebyla dokončena, vrátí funkce chybu. Při asynchronním použití WinHTTP jsou k dispozici události modelu COM (Component Object Model) a zpětné volání, které upozorňují aplikaci na průběh operace HTTP.

Autentizace

Ověřování je proces, kterým proxy server HTTP nebo server HTTP ověří přihlašovací údaje uživatele, než povolí přístup k prostředkům. Různá schémata ověřování se používají na internetu. Obvykle se uživatelské jméno a heslo porovnávají s autorizovaným seznamem a pokud systém zjistí shodu, udělí se přístup v rozsahu uvedeném v seznamu oprávnění pro uživatele.

Funkce WinHTTP podporují ověřování serveru i proxy serveru pro relace HTTP. WinHTTP podporuje následující schémata ověřování: Basic, Digest (viz RFC 2617), NTLM Authentication, Negotiate/ Kerberosa Microsoft Passport 1.4. Podrobné informace o ověřování a příklad použití ověřování v aplikaci Microsoft Visual C++ naleznete v tématu Ověřování v systému WinHTTP.

Informace o aspektech zabezpečení týkající se základního ověřování a ověřování passportem najdete v tématu aspekty zabezpečení winHTTP.