Hvad er HTTP / 2, og hvordan påvirker det Internets fremtid?
Reklame
Du har muligvis ikke hørt om HTTP / 2 endnu, men det er den seneste opdatering til HTTP. Den nye protokollstandard introducerer nogle nye koncepter og gør kommunikationen mellem servere og applikationer hurtigere og mere effektiv.
Hvad er HTTP / 2?
HyperText Transfer Protocol version 2 eller HTTP / 2 er den første store opdatering til HTTP på 15 år.
Den forrige protokollstandard, HTTP / 1.1, har været i brug siden 1997 og bruger en blanding af uklare løsninger til forbedring af HTTP-begrænsninger.
Det er baseret på SPDY (“hurtig”), et open source-eksperiment startet af Google for at løse nogle af problemerne og begrænsningerne i HTTP / 1.1
Internet Engineering Task Force (IETF) specificerer ændringerne som denne i Hypertext Transfer Protocol version 2, Udkast 17:
“HTTP / 2 muliggør en mere effektiv brug af netværksressourcer og en reduceret opfattelse af latenstid ved at indføre komprimering af headerfelt og tillade flere samtidige udvekslinger på den samme forbindelse […]
"Det tillader også prioritering af anmodninger, lader vigtigste anmodninger gennemføres hurtigere og forbedrer ydeevnen yderligere."
"HTTP / 2 muliggør også mere effektiv behandling af meddelelser ved hjælp af binær meddelelsesramme."
”Denne specifikation er et alternativ til, men forældes ikke, HTTP / 1.1-syntaxen. HTTP's eksisterende semantik forbliver uændret. ”
HTTP / 2 er baseret på SPDY
I 2012 understøttede de fleste moderne browsere og mange populære websteder (Google, Twitter, Facebook osv.) Allerede SPDY. Da populariteten af SPDY voksede, begyndte HTTP Working Group (HTTP-WG) at arbejde med at opdatere HTTP-standarden.
Fra dette tidspunkt blev SPDY grundlaget og eksperimentel gren for nye funktioner i HTTP / 2. På det tidspunkt undersøgte vi, hvordan SPDY kan forbedre browsing Hvad er SPDY, og hvordan kan det maksimere din browseroplevelse? Hvad er SPDY, og hvordan kan det maksimere din browseroplevelse? Læs mere . Siden da blev version 2-standarden udarbejdet, godkendt og offentliggjort.
Mange af funktionerne fra SPDY blev inkorporeret i HTTP / 2, og Google stoppede til sidst med at støtte denne protokol i begyndelsen af 2016.
De fleste browsere stoppede til sidst med at støtte SPDY, og da der ikke er nogen alternativer, er HTTP / 2 ved at blive de facto-standarden.
Mens HTTP / 2-protokollstandarden ikke er strengt bagudkompatibel med HTTP / 1, kan kompatibilitet opnås via oversættelse. En HTTP / 1.1-klient kun forstår ikke en HTTP / 2-server og vice versa, hvorfor den nye protokollversion er HTTP / 2 og ikke HTTP / 1.2.
Når det er sagt, er en vigtig del af det arbejde, der leveres af HTTP-WG, at sikre, at HTTP / 1 og HTTP / 2 kan oversættes frem og tilbage uden tab af information.
Eventuelle nye mekanismer eller funktioner, der indføres, vil også være versionuafhængige og bagudkompatible med det eksisterende web.
HTTP / 2 er ikke rigtig noget, en bruger kan implementere, men der er ting, vi kan gøre for at påvirke vores browsningshastighed. Tror du på nogen af disse almindelige myter for at fremskynde din internethastighed? 5 myter om at øge internethastigheden og hvorfor de ikke fungerer 5 myter om at øge internethastigheden og hvorfor de ikke fungerer Internethastighed er en kritisk måling i det 21. århundrede. Der er dog en masse fejlinformation online om, hvordan du gør din forbindelse hurtigere. Her er fem myter, du ikke burde tro. Læs mere
Fordelene og funktionerne ved HTTP / 2
HTTP / 2 kommer med nogle gode opdateringer til HTTP-standarden. Nogle af de mere vigtige er binær indramming, multiplexing, strømprioritering, flowkontrol og server push.
Binær indramning
Efter opdateringen til HTTP2 / opdeles HTTP-protokollkommunikationen i en udveksling af binære kodede rammer. Disse rammer er kortlagt til meddelelser, der hører til en bestemt strøm. Strømmene multipliceres derefter (vævet sammen i en forstand) i en enkelt TCP-forbindelse.
Det nye binære indramningslag introducerer nogle nye terminologier; Streams, meddelelser og rammer.
- Strømme er tovejsstrømme af byte, der bærer en eller flere meddelelser.
- Hver af disse streams har en unik identifikator og kan transportere tovejsmeddelelser ved hjælp af valgfri prioritetsinformation.
- Rammer er den mindste kommunikationsenhed i HTTP / 2, der indeholder specifikke datasæt (HTTP-headere, meddelelsens nyttelast osv.). Overskriften identificerer i det mindste den strøm, som rammen hører til.
- Meddelelser er et komplet sæt rammer, der kortlægger en logisk anmodning eller en svarmeddelelse.
- Hver meddelelse er en logisk HTTP-meddelelse, ligesom en anmodning eller svar, der består af en eller flere rammer.
Dette giver os mulighed for at bruge en enkelt TCP-forbindelse, til hvad der tidligere krævede multiple.
multiplexing
HTTP / 1.1 sikrer, at kun et svar kan leveres ad gangen pr. Forbindelse. Og browseren åbner yderligere TCP-forbindelser, hvis klienten ønsker at fremsætte flere parallelle anmodninger.
HTTP / 2 fjerner denne begrænsning af HTTP / 1.1 og muliggør fuld anmodninger og responsmultiplexering. Dette betyder, at klienten og serveren kan opdele en HTTP-meddelelse i uafhængige rammer, der derefter sammenflettes og samles i den anden ende.
Alt i alt er dette den vigtigste forbedring af HTTP / 2, da det til dels fjerner behovet for flere forbindelser. Dette vil igen introducere adskillige ydelsesfordele på tværs af alle webteknologier.
Det reducerede antal forbindelser betyder færre håndtryk af Transport Layer Security (TLS), bedre genbrug af sessioner og en samlet reduktion i klient- og serverressourcebehov. Dette gør applikationer hurtigere, enklere og billigere at implementere.
Websteder med mange eksterne aktiver (billeder eller scripts) vil se de største ydelsesgevinster ved HTTP / 2-multiplexing.
Stream prioritering og afhængighed
Yderligere forbedringer af de multipleksede strømme foretages med vægt og strømafhængighed. HTTP / 2 giver os mulighed for at give hver strøm en vægt (en værdi mellem 1 og 256) og gøre den eksplicit afhængig af en anden strøm.
Denne afhængighed og vægtkombination fører til oprettelse af et prioriteringstræ, der fortæller serveren, hvordan klienten foretrækker at modtage svar.
Serveren bruger oplysningerne i prioriteringstræet til at kontrollere tildelingen af CPU, hukommelse og andre ressourcer samt tildelingen af båndbredde for at sikre, at klienten får den optimale levering af højprioritetssvar.
Flow Control
Problemer med flowkontrol i HTTP / 2 ligner HTTP / 1.1. Da HTTP / 2-streams imidlertid er multiplekseret inden for en enkelt TCP-forbindelse, er måden af flowkontrol i HTTP / 1.1 ikke længere effektiv.
Kort sagt, flowstyring er nødvendig for at stoppe strømme, der forstyrrer hinanden for at forårsage en blokering. Dette muliggør multiplexering. HTTP / 2 gør det muligt at bruge en række flowkontrolalgoritmer uden at kræve protokolændringer.
Der er ikke specificeret nogen algoritme til flowstyring i HTTP / 2. I stedet er der leveret et sæt byggeklodser, der hjælper klienter og servere med at anvende deres egen flowkontrol.
Du kan finde detaljerne i disse byggesten i afsnittet "Flow Control" i HTTP / 2 internet-draft.
Server push
Din browser vil normalt anmode om og modtage et HTML-dokument fra en server, når du først besøger en side. Serveren skal derefter vente på, at browseren skal analysere HTML-dokumentet og sende en anmodning om de integrerede aktiver (CSS, JavaScript, billeder osv.).
I HTTP / 1.1 kan serveren ikke sende disse aktiver, før browseren anmoder om dem, og hvert aktiv kræver en separat anmodning (dvs. flere håndtryk og forbindelser).
Server push reducerer latenstid ved at tillade serveren at sende disse ressourcer uden hurtig, da den allerede ved, at klienten vil kræve dem. Så i eksemplet ovenfor skubber serveren CSS, JavaScript (et almindeligt scriptingssprog Hvad er JavaScript, og hvordan fungerer det? Hvad er JavaScript, og hvordan fungerer det? Hvad er Javascript? Det er et programmeringssprog, der bruges til at forbedre websider. Det inkluderer dynamisk opdatering af websider, brugergrænseflader og mere. Lad os dykke ned i, hvad Javascript handler om. Læs mere på websider), og billeder til browseren for at få vist siden hurtigere.
Grundlæggende giver server-push en server mulighed for at sende flere svar til en enkelt klientanmodning.
Omend manuelt er det den effekt, vi i øjeblikket får ved at indlemme CSS eller JS i vores HTML-dokumenter - vi skubber den inline ressource til klienten uden at vente på, at klienten anmoder om det.
Dette er et stort skridt væk fra den nuværende HTTP-standard for streng en-til-en-anmodning-svar-arbejdsgang.
Begrænsningerne for HTTP / 2
SPDY havde en lidt strengere sikkerhedspolitik og krævede SSL-kryptering til alle forbindelser. HTTPS / 2 kræver ikke kryptering, men mange tjenester tjener ikke HTTP / 2 uden SSL.
Alle større browsere understøtter HTTP / 2, men ingen af dem understøtter det uden kryptering. CanIUs webstedet har en fantastisk tabeloversigt over den aktuelle browserstøtte til HTTP / 2, som det ses ovenfor.
Den bagudkompatibilitet og oversættelser mellem HTTP / 1.1 og HTTP / 2 vil bremse siderbelastningshastigheden.
Der er ingen reel grund til, at kryptering ikke skal være en standard eller obligatorisk opsætning i øjeblikket. Hvis du allerede har et SSL-certifikat på dit websted, kan du forbedre sikkerheden på dit HTTPS-websted ved at aktivere HSTS.
Er HTTP / 2 det næste store ting?
HTTP / 2 blev foreslået som en standard i midten af 2015, og de fleste browsere tilføjede support til det ved udgangen af det år. HTTP / 2 påvirker allerede den måde, hvorpå internettet fungerer, og hvordan applikationer og servere taler sammen.
Der er ingen krav til at tvinge brugen af HTTP / 2, men indtil videre tjener det kun fordele og ingen ulemper. Det er også en temmelig mindre ændring fra et brugerperspektiv, som folk ikke virkelig vil bemærke.
I henhold til W3Tech understøtter 31, 7% af de top 10 millioner websteder i øjeblikket HTTP / 2. Den hurtigste måde for de fleste af jer til at aktivere HTTP / 2 på dit websted er at bruge Cloudflares CDN.
Den næste foreslåede standard (HTTP / 3) findes allerede i værkerne og er baseret på QUIC, et andet eksperimentelt projekt fra Google. I oktober i år anmodede IETF's HTTP-WG og QUIC Working Group officielt QUIC om at blive den nye verdensomspændende standard og omdøbe den til HTTP / 3.
Hvis du er nysgerrig, har Akamai.com et hurtigt værktøj til at kontrollere, om din browser understøtter HTTP / 2. Hvis det ikke gør det, kan du overveje at skifte din browser 5 Google Chrome-alternativer til en bedre browser på skrivebordet eller mobil 5 Google Chrome-alternativer til en bedre browser på skrivebordet eller mobil Chrome er den mest populære browser i verden. Men det har stadig problemer. Kan disse alternative browsere være et bedre valg? Læs mere .
Udforsk mere om: Computernetværk, HTTP / 2, SPDY.