Vad är HTTP / 2 och hur påverkar det Internetets framtid?

Vad är HTTP / 2 och hur påverkar det Internetets framtid? / Teknologi förklaras

Du kanske inte har hört talas om HTTP / 2, men det är den senaste uppdateringen till HTTP. Den nya protokollstandarden introducerar några nya koncept och gör kommunikationen mellan servrar och applikationer snabbare och effektivare.

Vad är HTTP / 2?

HyperText Transfer Protocol Version 2 eller HTTP / 2 är den första stora uppdateringen till HTTP på 15 år.

Den tidigare protokollstandarden HTTP / 1.1 har varit i bruk sedan 1997 och använder en blandning av klara lösningar för att förbättra gränserna för HTTP.

Den är baserad på SPDY (“snabb”) startade ett open-source-experiment av Google för att ta itu med några av problemen och begränsningarna i HTTP / 1.1

Internet Engineering Task Force (IETF) specificerar ändringarna så här i Hypertext Transfer Protocol version 2, Draft 17:

“HTTP / 2 möjliggör en effektivare användning av nätverksresurser och en minskad uppfattning om latens genom att introducera huvudfältkomprimering och möjliggöra flera samtidiga utbyten på samma anslutning [...]

“Det möjliggör också prioritering av förfrågningar, vilket gör att fler viktiga förfrågningar kan slutföras snabbare och ytterligare förbättra prestanda.”

“HTTP / 2 möjliggör också effektivare behandling av meddelanden genom användning av binär meddelanden.”

“Denna specifikation är ett alternativ till, men inte föråldrad, HTTP / 1.1-meddelandesyntaxen. HTTP: s befintliga semantik förblir oförändrad.”

HTTP / 2 är baserat på SPDY

I 2012 stöder de flesta moderna webbläsare och många populära webbplatser (Google, Twitter, Facebook etc.) SPDY. Eftersom populariteten för SPDY ökade, började HTTP-arbetsgruppen (HTTP-WG) att arbeta med att uppdatera HTTP-standarden.

Från och med denna tidpunkt blev SPDY grunden och experimentell grenen för nya funktioner i HTTP / 2. Vid den tiden undersökte vi hur SPDY kan förbättra surfning. Vad är SPDY, och hur kan det maximera din webbläsningsupplevelse? Vad är SPDY, och hur kan det maximera din webbläsningsupplevelse? Läs mer . Sedan dess har version 2-standarden ritats, godkänts och publicerats.

Många av funktionerna från SPDY inkorporerades i HTTP / 2, och Google slutade slutligen att stödja detta protokoll i början av 2016.

De flesta webbläsare slutade slutligen stödja SPDY, och eftersom det inte finns några alternativ blir HTTP / 2 de facto-standarden.

Medan HTTP / 2-protokollstandarden inte är strikt bakåtkompatibel med HTTP / 1 kan kompatibilitet uppnås via översättning. En HTTP / 1.1-klient förstår inte en HTTP / 2-ens server och vice versa, varför den nya protokollversionen är HTTP / 2 och inte HTTP / 1.2.

Det sägs att en viktig del av arbetet som tillhandahålls av HTTP-WG är att se till att HTTP / 1 och HTTP / 2 kan översättas fram och tillbaka utan att det förloras information.

Alla nya mekanismer eller funktioner som införs kommer också att vara versionsoberoende och bakåtkompatibla med den befintliga webben.

HTTP / 2 är inte riktigt något som en användare kan implementera, men det finns saker vi kan göra för att påverka vår surfhastighet. Tror du på någon av dessa vanliga myter för att påskynda din internethastighet? 5 Myter om att öka Internethastigheten och varför de inte arbetar 5 Myter om att öka Internethastigheten och varför de inte arbetar Internethastighet är ett kritiskt mått i det 21: a århundradet. Det finns dock mycket fel på nätet om hur du gör din anslutning snabbare. Här är fem myter du borde inte tro. Läs mer

Fördelarna och funktionerna i HTTP / 2

HTTP / 2 levereras med några bra uppdateringar till HTTP-standarden. Några av de viktigaste är binär inramning, multiplexering, flödesprioritering, flödesstyrning och serverdämpning.

Binär inramning

HTTP-meddelanden av mfuji09 är licensierad under CC-BY-SA 2.5.

Efter uppdateringen till HTTP2 /, delas HTTP-protokollkommunikationen i en utbyte av binärkodade ramar. Dessa ramar är mappade till meddelanden som hör till en viss ström. Strömmarna multiplexeras sedan (vävda ihop i en mening) i en enda TCP-anslutning.

Det nya binära inramningsskiktet introducerar en ny terminologi; Strömmar, meddelanden och ramar.

  • Strömmar är dubbelriktat flöde av byte som bär ett eller flera meddelanden.
  • Var och en av dessa strömmar har en unik identifierare och kan bära tvåriktiga meddelanden med valfri prioritetsinformation.
  • Ramar är den minsta kommunikationsenheten i HTTP / 2 som innehåller specifika datamängder (HTTP-rubriker, meddelandevängder etc.). Rubriken kommer åtminstone att identifiera den ström som ramen hör till.
  • Meddelanden är en komplett uppsättning ramar som lägger till en logisk förfrågan eller ett svarmeddelande.
  • Varje meddelande är ett logiskt HTTP-meddelande, som en förfrågan eller ett svar, som består av en eller flera ramar.

Detta gör det möjligt för oss att använda en enda TCP-anslutning, för det som tidigare krävde flera.

Multiplexing

HTTP / 1.1 säkerställer att endast ett svar kan levereras åt gången per anslutning. Och webbläsaren öppnar ytterligare TCP-anslutningar om klienten vill göra flera parallella förfrågningar.

HTTP / 2 tar bort denna begränsning av HTTP / 1.1 och möjliggör fullständiga förfrågningar och responsmultiplexering. Det innebär att klienten och servern kan bryta ner ett HTTP-meddelande i oberoende ramar, som sedan interfolieras och sätts ihop i andra änden.

Sammantaget är detta den viktigaste förbättringen av HTTP / 2, eftersom det delvis kommer att eliminera behovet av flera anslutningar. Detta kommer i sin tur att introducera många prestanda fördelar över alla webbtekniker.

Det minskade antalet anslutningar innebär färre handskakningar för transportlagssäkerhet (TLS), bättre återanvändning av sessionen och en övergripande minskning av krav på klient och serverresurs. Detta gör applikationer snabbare, enklare och billigare att distribuera.

Webbplatser med många externa tillgångar (bilder eller skript) kommer att se de största prestationsvinsterna från HTTP / 2-multiplexering.

Stream Prioritering och beroende

Ytterligare förbättringar av de multiplexade strömmarna är gjorda med vikt och strömavstånd. HTTP / 2 tillåter oss att ge varje ström en vikt (ett värde mellan 1 och 256) och göra det explicit beroende av en annan ström.

Denna beroendet och viktkombinationen leder till att ett prioriterings träd skapas, vilket berättar servern hur klienten föredrar att få svar.

Servern kommer att använda informationen i prioriteringsträdet för att styra fördelningen av CPU, minne och andra resurser samt fördelningen av bandbredd för att säkerställa att klienten får optimal leverans av högprioriterade svar.

Flödeskontroll

Problem med flödesstyrning i HTTP / 2 liknar HTTP / 1.1. Men eftersom HTTP / 2-strömmar multiplexeras inom en enda TCP-anslutning, är flödeskontrollen i HTTP / 1.1-arbeten inte längre effektiv.

Kort sagt, flödeskontroll behövs för att stoppa strömmar som stör varandra för att orsaka blockering. Detta möjliggör multiplexering. HTTP / 2 tillåter en mängd olika flödesstyrningsalgoritmer att användas utan att behöva ändras protokoll.

Ingen algoritm för flödesstyrning anges i HTTP / 2. Istället har en uppsättning byggstenar tillhandahållits för att hjälpa kunder och servrar att tillämpa egen flödesstyrning.

Du kan hitta specifikationerna för dessa byggstenar i “Flödeskontroll” avsnittet av HTTP / 2 internet-utkastet.

Server Push

Din webbläsare begär normalt och tar emot ett HTML-dokument från en server när du besöker en sida först. Servern måste sedan vänta på att webbläsaren ska analysera HTML-dokumentet och skicka en begäran om de inbäddade tillgångarna (CSS, JavaScript, bilder etc.).

I HTTP / 1.1 kan servern inte skicka dessa tillgångar tills webbläsaren begär dem, och varje tillgång kräver en separat förfrågan (dvs flera handslag och anslutningar).

Server-push kommer att minska latensen genom att tillåta servern att skicka dessa resurser utan förfrågan, eftersom det redan vet att klienten behöver dem. Så i exemplet ovan kommer servern att trycka CSS, JavaScript (ett vanligt skriptspråk Vad är JavaScript och hur fungerar det? Vad är JavaScript och hur fungerar det? Vad är Javascript? Det är ett programmeringsspråk som används för att förbättra webbsidor. Den innehåller dynamiskt uppdatering av webbsidor, användargränssnitt och mer. Låt oss dyka in i vad Javascript handlar om. Läs mer på webbsidor) och bilder i webbläsaren för att visa sidan snabbare.

I grund och botten tillåter serverns push att en server skickar flera svar för en enda klientförfrågan.

Om än manuellt är det här den effekt vi för närvarande får genom att inlägga CSS eller JS i våra HTML-dokument - vi trycker in den inlinerade resursen till kunden utan att vänta på att klienten begär det.

Detta är ett stort steg bort från den nuvarande HTTP-standarden för strikt one-to-one request-response-arbetsflöde.

Begränsningarna för HTTP / 2

SPDY hade en något strängare policy för säkerhet och krävs SSL-kryptering för alla anslutningar. HTTPS / 2 kräver inte kryptering men många tjänster fungerar inte HTTP / 2 utan SSL.

Alla större webbläsare stöder HTTP / 2, men ingen av dem kommer att stödja den utan kryptering. CanIUs hemsida har en bra tabellöversikt över det aktuella webbläsarstödet för HTTP / 2, som ovan.

Bakåtkompatibiliteten och översättningarna mellan HTTP / 1.1 och HTTP / 2 kommer att sakta ner sidlasthastigheten.

Det finns ingen riktig anledning till att kryptering inte ska vara en standard eller obligatorisk inställning nu. Om du redan har ett SSL-certifikat på din webbplats kan du förbättra säkerheten på din HTTPS-webbplats genom att aktivera HSTS.

Är HTTP / 2 nästa stora sak?

HTTP / 2 föreslogs som en standard i mitten av 2015, och de flesta webbläsare lagde till stöd för det vid slutet av det året. HTTP / 2 påverkar redan hur internet fungerar och hur applikationer och servrar samtalar.

Det finns inga krav för att tvinga användningen av HTTP / 2, men hittills tjänar det bara fördelar och inga nackdelar. Det är också en ganska liten förändring från ett användarperspektiv, en som folk inte märker verkligen.

Enligt W3Tech stödjer 31,7% av de 10 miljoner webbplatserna för närvarande HTTP / 2. Det snabbaste sättet för dig att aktivera HTTP / 2 på din webbplats är att använda Cloudflare's CDN.

Nästa förslag till standard (HTTP / 3) finns redan i verken och bygger på QUIC, ett annat experimentellt projekt från Google. I oktober i år begärde IETF: s HTTP-WG och QUIC Working Group officiellt QUIC att bli den nya globala standarden och att byta namn på den HTTP / 3.

Om du är nyfiken, har Akamai.com ett snabbt verktyg för att kontrollera om din webbläsare stöder HTTP / 2. Om det inte gör det, kanske du överväga att byta webbläsare 5 Google Chrome Alternativ för en bättre webbläsare på skrivbord eller mobil 5 Google Chrome Alternativ för en bättre webbläsare på skrivbordet eller mobil Chrome är den mest populära webbläsaren i världen. Men det har fortfarande problem. Kan dessa alternativa webbläsare vara ett bättre val? Läs mer .

Utforska mer om: Datornätverk, HTTP / 2, SPDY.