HTTP/1.1:s protokoll definieras av RFC 2616 (nu mest föråldrad av RFC 7230-7235). Det är ett textbaserat protokoll som använder en klient-servermodell där en klient (som en webbläsare) initierar en begäran till en server (som en webbserver). Här är en uppdelning av dess viktigaste egenskaper:
Nyckelfunktioner:
* klient-server: En klient initierar kommunikation genom att skicka en begäran till en server. Servern svarar på begäran.
* Request-Response: Kommunikation är baserad på en begäran-svar-cykel. Varje begäran från klienten genererar ett enda svar från servern.
* Stateless: Varje begäran är oberoende av tidigare förfrågningar. Servern behåller inte information om tidigare interaktioner med klienten. (Sessioner hanteras genom mekanismer som kakor, inte inneboende i själva protokollet.)
* Anslutningshantering: HTTP/1.1 introducerar persistenta anslutningar (Keep-Alive). Detta gör att flera förfrågningar och svar kan skickas över en enda TCP -anslutning, vilket förbättrar effektiviteten. "Anslutningshuvudet avgör om anslutningen ska hållas vid liv efter ett svar. Om det inte anges beror standardbeteendet på serverns konfiguration, men det är i allmänhet att hålla anslutningen vid liv.
* caching: HTTP/1.1 stöder cachemekanismer för att förbättra prestandan. Svaren kan inkludera rubriker som indikerar om och hur de kan cachas.
* rubriker: Både förfrågningar och svar inkluderar rubriker som tillhandahåller metadata, som innehållstyp, längd, datum och mer. Rubriker är nyckelvärdespar.
* Metoder: HTTP definierar flera metoder (verb) för att specificera vilken typ av begäran, inklusive:få, post, put, ta bort, huvud, alternativ, etc.
* statuskoder: Servern svarar med en tresiffrig statuskod som indikerar resultatet av begäran (t.ex. 200 OK, 404 hittades inte, 500 interna serverfel).
* Innehåll: Svaret inkluderar vanligtvis det begärda innehållet (t.ex. en HTML -sida, en bild, JSON -data).
Struktur för en begäran:
`` `
Metod /sökväg http /1.1
Värd:exempel.com
Användaragent:Mozilla/5.0 ...
Acceptera:text/html, applikation/xhtml+xml, ...
Anslutning:Keep-Alive
... andra rubriker ...
[Begär kropp (valfritt)]
`` `
Struktur av ett svar:
`` `
Http/1.1 200 ok
Datum:Tis, 29 nov 2023 16:03:22 GMT
Server:Apache/2.4.54
Innehållstyp:text/html; Charset =UTF-8
Innehållslängd:1234
Anslutning:Keep-Alive
... andra rubriker ...
[Svarkropp]
`` `
Begränsningar av http/1.1:
* head-of-line blockering: Eftersom förfrågningar skickas i följd över en enda anslutning kan en långsam laddningsresurs blockera efterföljande förfrågningar och påverka prestanda. Detta är en betydande nackdel, adresserad av senare protokoll som HTTP/2 och HTTP/3.
* overhead: De textbaserade natur- och verboshuvudena lägger till några omkostnader jämfört med nyare, binära protokoll.
HTTP/1.1 förbättrades avsevärt på sin föregångare, HTTP/1.0, men dess begränsningar banade vägen för utvecklingen av effektivare protokoll som HTTP/2 och HTTP/3. Att förstå HTTP/1.1 är fortfarande värdefull, eftersom många system fortfarande använder det, och att förstå dess principer är avgörande för att ta tag i utvecklingen av webben.