Detta material är en del av serien "Introduktion till företagsutveckling". Tidigare artiklar:
Hej! Idag ska vi lära oss om HTTP- och HTTPS-protokollen. Men först, låt oss förtydliga en punkt: vi pratar om protokoll för att skicka data över ett nätverk på applikationsnivån för OSI-modellen. Du kanske minns att vi lärde känna OSI-modellen i en av de tidigare artiklarna. Om du inte kommer ihåg det, här är det .

Vad är ett datakommunikationsprotokoll?
Detta är vad vi kallar den överenskomna uppsättningen regler som tillåter utvecklare av olika tjänster att skicka information i ett format som andra kan förstå. Du kan till exempel använda Google Chrome för att få information från både Facebook och Twitter, eftersom utvecklarna skickar den med standard HTTP-protokollet, vilket gör att din webbläsare kan bearbeta den. Enhetliga regler är mycket bekväma för de som utvecklar serverdelen: det finns många bibliotek som kan konvertera information åt dig och skicka den med rätt protokoll. HTTP var ursprungligen tänkt som ett protokoll för att skicka HTML-sidor. Det var så det användes länge, men nu använder programmerare det ofta för att skicka både strängar och mediafiler. I allmänhet är detta protokoll universellt accepterat och mångsidigt, och det är verkligen lätt att använda. Och nu ska vi undersöka hur man använder det.Strukturen för HTTP
Vi bör genast notera att HTTP-protokollet endast består av text. Det som intresserar oss mest är strukturen i denna text. Varje meddelande består av tre delar:- Startlinje — Detta definierar vissa hushållsdata.
- Rubriker — Dessa beskriver meddelandeparametrarna.
- Kropp — Detta är innehållet i meddelandet. Brödtexten måste separeras från rubrikerna med en tom rad.
Så här ser en enkel HTTP-förfrågan ut:
GET / HTTP/1.1
Host: codegym.cc
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
Startraden visar:
- GET — Förfrågans metod
- / — Förfrågans väg
- HTTP/1.1 — Protokollversionen
- Värd — Värden som förfrågan är adresserad till
- User-Agent — Klienten som skickar begäran
https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
där codegym.cc är värden, /send är begärans sökväg och ? är en avgränsare som indikerar att frågeparametrarna följer. I slutet listas nyckel-värdepar ("nyckel=värde"), separerade med ett et-tecken. POST — Denna metod publicerar information på servern. En POST-begäran kan skicka olika typer av information: parametrar som "nyckel=värde"-par, JSON, HTML-kod eller till och med filer. All information skickas i meddelandets brödtext. Till exempel:
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: codegym.cc
{
"Id": 12345,
"User": "John"
}
Begäran skickas till codegym.cc/user/create/json, och protokollversionen är HTTP/1.1. "Acceptera" indikerar det svarsformat som klienten förväntar sig att få. "Content-Type" anger formatet på meddelandetexten som skickades i begäran. "Content-Length" är antalet tecken i brödtexten. En HTTP-förfrågan kan innehålla många olika rubriker. För mer information, ta en titt på protokollets specifikation .
HTTP-svar
Efter att ha tagit emot en förfrågan bearbetar servern den och skickar ett svar till klienten:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
Svarets startrad innehåller protokollversionen (HTTP/1.1), statuskod (200) och statusbeskrivning (OK). Dess rubriker inkluderar typen och längden på innehållet. Svarskroppen innehåller HTML-kod som webbläsaren renderar som en HTML-sida.
Svarsstatuskoder
Allt är klart angående meddelandetext och rubriker, men vi bör säga några ord om statuskoder. Svarsstatuskoder är alltid tresiffriga. Den första siffran i koden anger kategorin för svaret:- 1xx — Information. Begäran mottogs. Servern är redo att fortsätta.
- 2xx — Lyckad. Förfrågan mottogs, förstods och behandlades.
- 3xx — Omdirigering. Ytterligare åtgärder måste utföras för att behandla begäran.
- 4xx — Klientfel. Begäran innehåller fel eller överensstämmer inte med protokollet.
- 5xx — Serverfel. Begäran var korrekt sammansatt, men servern kunde inte bearbeta den.
- 200 OK — Förfrågan mottogs och behandlades framgångsrikt.
- 201 Skapad — Förfrågan togs emot och behandlades framgångsrikt, vilket resulterade i att en ny resurs eller instans skapades.
- 301 Flyttade permanent — Den begärda resursen flyttades permanent. Efterföljande förfrågningar till den bör göras med den nya adressen.
- 307 Temporary Redirect — Resursen har flyttats tillfälligt. För närvarande kan den nås med automatisk vidarebefordran.
- 403 Förbjudet — Begäran förstods, men tillstånd krävs.
- 404 Not Found — Servern hittade inte resursen på den här adressen.
- 501 Ej implementerad — Servern stöder inte den funktionalitet som krävs för att svara på begäran.
- 505 HTTP-version stöds inte — Servern stöder inte den angivna versionen av HTTP-protokollet.
GO TO FULL VERSION