Dela via


Nätverksterminologi (WinHTTP)

När du utvecklar ett program som använder Microsoft Windows HTTP Services (WinHTTP) är det viktigt att förstå följande begrepp och terminologi som relaterar till nätverk i allmänhet och HTTP-protokollet i synnerhet.

HTTP-transaktioner

När du arbetar med HTTP-transaktioner utbyter du information med en annan dator någon annanstans i ett nätverk. Informationen som utbyts kan vara en fil som innehåller text eller multimedia, eller så kan det vara resultatet av en databasfråga. En information som utbyts via ett nätverk kallas för en resurs. Normalt är den dator som skickar en resurs servern och den dator som tar emot den resursen är en klient. Det är dock också möjligt för en klient att publicera data till en server. Ibland omfattar en HTTP-transaktion en mellannivåserver. En mellannivåserver samlar in flera resurser från andra servrar, kompilerar informationen till en resurs och skickar resursen till klienten.

Processen för att hämta en resurs med hjälp av HTTP-protokollet kräver att en serie meddelanden utbyts mellan klienten och servern. Klienten påbörjar transaktionen genom att skicka ett meddelande som begär en resurs. Det här meddelandet kallas för en HTTP-begäran, eller ibland bara en begäran. En HTTP-begäran består av följande komponenter.

  • Metod, URI (Uniform Resource Identifier), protokollversionsnummer
  • Headers
  • Entitetstext

När en server tar emot en begäran svarar den genom att skicka ett meddelande tillbaka till klienten. Meddelandet som skickas av servern kallas http-svar. Ett HTTP-svar består av följande komponenter.

  • Protokollversionsnummer, statuskod, statustext
  • Headers
  • Entitetstext

Svaret anger antingen att begäran inte kan bearbetas eller innehåller begärd information. Beroende på typen av begäran kan detta vara information om en resurs, till exempel dess storlek och typ, eller vara en del av eller hela själva resursen. Den del av ett svar som innehåller en del av eller hela den begärda resursen kallas "svarsdata" eller "entitetstext", och svaret är inte slutfört förrän alla svarsdata har tagits emot.

Detaljerad information om HTTP-transaktioner och HTTP-protokollet finns i RFC 2616, Hypertext Transfer Protocol – HTTP/1.1.

Proxyservrar

Även om en begäran som skickas av en klient så småningom tas emot av målservern, passerar transaktionen ibland först genom en proxyserver. En proxy fångar upp begäran och kan till och med ändra begäran innan den skickas till servern. När servern svarar skickas även svaret via proxyn innan det vidarebefordras till klienten. Proxyn kan ändra rubrikerna i det här svaret.

Genom att fånga upp och översätta nätverkstransaktioner kan en proxy:

  • Skydda klienten genom att övervaka potentiellt farliga transaktioner.
  • Gör det möjligt för klienten att kommunicera med hjälp av protokoll som kanske inte implementeras av klientprogramvaran.
  • Fungera som en gateway mellan ett privat nätverk och ett offentligt nätverk.

WinHTTP-API:et innehåller ett proxykonfigurationsverktyg som gör att du kan ge WinHTTP information om eventuella proxyservrar som fångar upp dina HTTP-transaktioner. Information om hur du använder proxykonfigurationsverktyget finns i ProxyCfg.exe, ett proxykonfigurationsverktyg.

Synkrona och asynkrona lägen

Det finns två programmeringsmodeller för att hämta resurser via ett nätverk med WinHTTP – de synkrona och asynkrona modellerna. I en synkron modell slutförs inte ett anrop till en funktion eller metod förrän den begärda åtgärden har slutförts eller tills ett fel inträffar. När ditt program till exempel begär en resurs med WinHTTP synkront fortsätter det inte med nästa steg förrän de begärda data har tagits emot.

En asynkron modell gör å andra sidan att ett program kan utföra andra uppgifter medan det väntar på att resursen ska hämtas. Om en annan WinHTTP-funktion eller -metod anropas och en tidigare åtgärd inte har slutförts returnerar funktionen ett fel. När du använder WinHTTP asynkront är com-händelser (Component Object Model) tillgängliga för att meddela ett program om förloppet i en HTTP-åtgärd.

Autentisering

Autentisering är den process genom vilken en HTTP-proxy eller HTTP-server verifierar en användares inloggningsinformation innan den ger åtkomst till resurser. Olika autentiseringsscheman används på Internet. Vanligtvis jämförs en användares namn och lösenord med en auktoriserad lista, och om systemet identifierar en matchning beviljas åtkomst i den utsträckning som anges i behörighetslistan för användaren.

WinHTTP-funktioner stöder både server- och proxyautentisering för HTTP-sessioner. WinHTTP stöder följande autentiseringsscheman: Basic, Digest (se RFC 2617), NTLM Authentication, Negotiate/ Kerberosoch Microsoft Passport 1.4. Detaljerad information om autentisering och ett exempel på hur du använder autentisering i ett Microsoft Visual C++-program finns i -autentisering i WinHTTP.

Information om säkerhetsöverväganden för grundläggande autentisering och Passport-autentisering finns i Säkerhetsöverväganden för WinHTTP.