Hva er HTTP / 2 og hvordan påvirker det Internettets fremtid?
Du har kanskje ikke hørt om HTTP / 2 ennå, men det er den nyeste oppdateringen til HTTP. Den nye protokollstandarden introduserer noen nye konsepter og gjør kommunikasjonen mellom servere og applikasjoner raskere og mer effektiv.
Hva er HTTP / 2?
HyperText Transfer Protocol Version 2, eller HTTP / 2, er den første store oppdateringen til HTTP om 15 år.
Den forrige protokollstandarden, HTTP / 1.1, har vært i bruk siden 1997 og bruker en blanding av klare løsninger for å forbedre begrensningene til HTTP.
Den er basert på SPDY (“speedy”), et open source-eksperiment startet av Google for å ta opp noen av problemene og begrensningene til HTTP / 1.1
Internet Engineering Task Force (IETF) angir endringene som dette i Hypertext Transfer Protocol versjon 2, Draft 17:
“HTTP / 2 muliggjør en mer effektiv bruk av nettverksressurser og redusert ventetid ved å introdusere toppfeltkomprimering og tillate flere samtidige utvekslinger i samme forbindelse [...]
“Det tillater også prioritering av forespørsler, slik at flere viktige forespørsler blir raskere, og forbedrer ytelsen ytterligere.”
“HTTP / 2 muliggjør også mer effektiv behandling av meldinger ved bruk av binær meldingsraming.”
“Denne spesifikasjonen er et alternativ til, men ikke utdatert, HTTP / 1.1-meldingssyntaxen. HTTPs eksisterende semantikk forblir uendret.”
HTTP / 2 er basert på SPDY
I 2012 støttes de fleste moderne nettlesere og mange populære nettsteder (Google, Twitter, Facebook etc.) SPDY. Da populariteten til SPDY økte, begynte HTTP-arbeidsgruppen (HTTP-WG) å arbeide med å oppdatere HTTP-standarden.
Fra dette punktet ble SPDY grunnlaget og eksperimentell grenen for nye funksjoner i HTTP / 2. På den tiden undersøkte vi hvordan SPDY kan forbedre surfing Hva er SPDY, og hvordan kan det maksimere din surfingopplevelse? Hva er SPDY, og hvordan kan det maksimere din surfing opplevelse? Les mer . Siden da ble versjon 2-standarden utarbeidet, godkjent og publisert.
Mange av funksjonene fra SPDY ble innlemmet i av HTTP / 2, og Google stoppet slutt å støtte denne protokollen tidlig i 2016.
De fleste nettlesere slutte slutt å støtte SPDY, og da det ikke finnes noen alternativer, blir HTTP / 2 de facto-standarden.
Selv om HTTP / 2-protokollstandarden ikke er strengt bakoverkompatibel med HTTP / 1, kan kompatibilitet oppnås via oversettelse. En kun HTTP / 1.1-klient forstår ikke en HTTP / 2 eneste server og vice versa. Derfor er den nye protokollversjonen HTTP / 2 og ikke HTTP / 1.2..
Når det er sagt, er en viktig del av arbeidet som tilbys av HTTP-WG, å sikre at HTTP / 1 og HTTP / 2 kan oversettes frem og tilbake uten tap av informasjon.
Eventuelle nye mekanismer eller funksjoner introdusert vil også være versjon-uavhengige og bakoverkompatible med eksisterende web.
HTTP / 2 er egentlig ikke noe en bruker kan implementere, men det er ting vi kan gjøre for å påvirke vår surfhastighet. Tror du noen av disse vanlige mytene for å øke hastigheten på internetthastigheten din? 5 Myter om å øke Internett-hastighet og hvorfor de ikke jobber 5 Myter om å øke Internett-hastighet og hvorfor de ikke fungerer Internett-hastighet er en kritisk måling i det 21. århundre. Det er imidlertid mye feilinformasjon på nettet om hvordan du kan gjøre forbindelsen raskere. Her er fem myter du burde ikke tro på. Les mer
Fordelene og funksjonene til HTTP / 2
HTTP / 2 kommer med noen gode oppdateringer til HTTP-standarden. Noen av de viktigste er binær innramming, multiplexing, stream prioritering, flytkontroll og server push.
Binær innramming
Etter oppdateringen til HTTP2 /, er HTTP-protokollkommunikasjonen delt opp i en utveksling av binærkodede rammer. Disse rammene er kartlagt til meldinger som tilhører en bestemt strøm. Strømmene blir så multiplexert (vevd sammen på en måte) i en enkelt TCP-tilkobling.
Det nye binære rammelaget introduserer noen ny terminologi; Strømmer, meldinger og rammer.
- Strømmer er toveisstrømmer av byte som bærer en eller flere meldinger.
- Hver av disse strømmene har en unik identifikator og kan bære toveis beskjeder ved hjelp av valgfri prioritetsinformasjon.
- Rammer er den minste kommunikasjonsenheten i HTTP / 2 som inneholder spesifikke sett med data (HTTP-overskrifter, meldings nyttelaster etc.). Overskriften vil ved minimum identifisere strømmen som rammen tilhører.
- Meldinger er et komplett sett med rammer som legger til en logisk forespørsel eller svarmelding.
- Hver melding er en logisk HTTP-melding, som en forespørsel eller svar, som består av en eller flere rammer.
Dette tillater oss å bruke en enkelt TCP-tilkobling, for det som tidligere krever flere.
multiplexing
HTTP / 1.1 sikrer at bare ett svar kan leveres på en gang per tilkobling. Og nettleseren vil åpne flere TCP-tilkoblinger hvis klienten ønsker å gjøre flere parallelle forespørsler.
HTTP / 2 fjerner denne begrensningen av HTTP / 1.1 og muliggjør full forespørsler og responsmultipleksering. Dette betyr at klienten og serveren kan bryte ned en HTTP-melding i uavhengige rammer, som deretter er sammenflettet og samlet i den andre enden.
Samlet sett er dette den viktigste forbedringen av HTTP / 2, da det delvis eliminerer behovet for flere tilkoblinger. Dette vil i sin tur introdusere en rekke ytelsesfordeler i alle webteknologier.
Det reduserte antallet tilkoblinger betyr færre håndtering av transportlagssikkerhet (TLS), bedre økt gjenbruk og en generell reduksjon av krav til klient og serverressurser. Dette gjør applikasjoner raskere, enklere og billigere å distribuere.
Nettsteder med mange eksterne ressurser (bilder eller skript) vil se de største ytelsesgevinstene fra HTTP / 2-multiplexing.
Stream prioritering og avhengighet
Ytterligere forbedringer av de multipleksede strømmer er laget med vekt og strømavhengigheter. HTTP / 2 lar oss gi hver strøm en vekt (en verdi mellom 1 og 256), og gjør det eksplisitt avhengig av en annen strøm.
Denne avhengighets- og vektkombinasjonen fører til etableringen av et prioriterings-tre som forteller serveren hvordan klienten foretrekker å motta svar.
Serveren bruker informasjonen i prioriteringstreet for å kontrollere tildelingen av CPU, minne og andre ressurser, samt tildeling av båndbredde for å sikre at klienten mottar optimal levering av høy prioriterte svar.
Flytkontroll
Problemer med flytkontroll i HTTP / 2 ligner HTTP / 1.1. Imidlertid, siden HTTP / 2-strømmer multiplexeres i en enkelt TCP-tilkobling, er måten flytkontroll i HTTP / 1.1-arbeid ikke lenger effektiv.
Kort sagt, flytkontroll er nødvendig for å stoppe strømmer som forstyrrer hverandre for å forårsake blokkering. Dette gjør det mulig med multipleksering. HTTP / 2 tillater en rekke strømningsstyringsalgoritmer som skal brukes, uten at det kreves protokollendringer.
Ingen algoritme for flytkontroll er spesifisert i HTTP / 2. I stedet er det gitt et sett med byggeklosser for å hjelpe kunder og servere til å bruke egen strømstyring.
Du finner spesifikkene til disse byggeblokkene i “Flytkontroll” del av HTTP / 2 Internett-utkastet.
Server Push
Nettleseren din vil normalt be om og motta et HTML-dokument fra en server når du besøker en side først. Serveren må da vente på at nettleseren skal analysere HTML-dokumentet og sende en forespørsel om de innebygde eiendelene (CSS, JavaScript, bilder etc.).
I HTTP / 1.1 kan serveren ikke sende disse ressursene til nettleseren ber om dem, og hvert aktivum krever en separat forespørsel (dvs. flere håndtrykk og tilkoblinger).
Server push vil redusere latency ved å la serveren sende disse ressursene uten å spørre, da det allerede vet at klienten vil kreve dem. Så i eksemplet ovenfor vil serveren skyve CSS, JavaScript (et vanlig skriptspråk. Hva er JavaScript og hvordan fungerer det? Hva er JavaScript og hvordan fungerer det? Hva er Javascript? Det er et programmeringsspråk som brukes til å forbedre websider. Det inkluderer dynamisk oppdatering av nettsider, brukergrensesnitt og mer. La oss dykke inn i hva Javascript handler om. Les mer på nettsider), og bilder til nettleseren for å vise siden raskere.
I utgangspunktet tillater server-push en server å sende flere svar for en enkelt klientforespørsel.
Selv om det er manuelt, er dette effekten vi nå får ved å legge inn CSS eller JS i våre HTML-dokumenter - vi skyver den innlagte ressursen til klienten uten å vente på at klienten skal be om det.
Dette er et stort skritt bort fra gjeldende HTTP-standard for streng en-til-en forespørsel-respons-arbeidsflyt.
Begrensningene til HTTP / 2
SPDY hadde en litt strengere policy for sikkerhet og nødvendig SSL-kryptering for alle tilkoblinger. HTTPS / 2 krever ikke kryptering, men mange tjenester vil ikke tjene HTTP / 2 uten SSL.
Alle de store nettleserne støtter HTTP / 2, men ingen av dem støtter den uten kryptering. CanIUs nettsted har en flott tabelloversikt over den nåværende nettleserstøtten for HTTP / 2, som vist ovenfor.
Den bakoverkompatibilitet og oversettelser mellom HTTP / 1.1 og HTTP / 2 vil senke sidens lasthastighet.
Det er ingen reell grunn til at kryptering ikke skal være et standard eller obligatorisk oppsett nå. Hvis du allerede har et SSL-sertifikat på nettstedet ditt, kan du forbedre sikkerheten til HTTPS-nettstedet ved å aktivere HSTS.
Er HTTP / 2 den neste store tingen?
HTTP / 2 ble foreslått som en standard i midten av 2015, og de fleste nettlesere la til støtte for det innen utgangen av det året. HTTP / 2 påvirker allerede måten internett fungerer og hvordan applikasjoner og servere snakker sammen.
Det er ingen krav for å tvinge bruken av HTTP / 2, men så langt tjener det bare fordeler og ingen ulemper. Det er også en ganske liten forandring fra et brukerperspektiv, en som folk ikke vil merke.
Ifølge W3Tech støtter 31,7% av de 10 millioner nettstedene i dag HTTP / 2. Den raskeste måten for de fleste av dere å aktivere HTTP / 2 på nettstedet ditt er å bruke Cloudflare's CDN.
Den neste foreslåtte standarden (HTTP / 3) er allerede i arbeidene og er basert på QUIC, et annet eksperimentelt prosjekt fra Google. IETFs HTTP-WG og QUIC Working Group anmodet i oktober i år offisielt QUIC om å bli den nye verdensomspennende standarden og omdøpe den til HTTP / 3.
Hvis du er nysgjerrig, har Akamai.com et raskt verktøy for å sjekke om nettleseren din støtter HTTP / 2. Hvis det ikke gjør det, kan du kanskje vurdere å bytte nettleseren din 5 Google Chrome Alternativer for en bedre nettleser på skrivebord eller mobil 5 Google Chrome Alternativer for en bedre nettleser på skrivebordet eller mobil Chrome er den mest populære nettleseren i verden. Men det har fortsatt problemer. Kan disse alternative nettleserne være et bedre valg? Les mer .
Utforsk mer om: Datamaskiner, HTTP / 2, SPDY.