Hva er HTTP / 2, og hvordan påvirker det internettets fremtid?
Annonse
Du har kanskje ikke hørt om HTTP / 2 ennå, men det er den siste 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 Versjon 2, eller HTTP / 2, er den første store oppdateringen til HTTP på 15 år.
Den forrige protokollstandarden, HTTP / 1.1, har vært i bruk siden 1997 og bruker en blanding av klumpete løsninger for å forbedre begrensningene til HTTP.
Det er basert på SPDY (“hurtig”), et open source-eksperiment startet av Google for å løse noen av problemene og begrensningene til HTTP / 1.1
Internet Engineering Task Force (IETF) spesifiserer endringene som dette i Hypertext Transfer Protocol versjon 2, utkast 17:
“HTTP / 2 muliggjør en mer effektiv bruk av nettverksressurser og redusert latensoppfatning ved å innføre komprimering av headerfelt og tillate flere samtidige utvekslinger på samme forbindelse […]
"Det tillater også prioritering av forespørsler, slik at flere viktige forespørsler fullføres raskere, og forbedrer ytelsen ytterligere."
"HTTP / 2 muliggjør også mer effektiv behandling av meldinger ved bruk av binær meldingsramme."
“Denne spesifikasjonen er et alternativ til, men ikke foreldet, HTTP / 1.1-meldingssyntaxen. HTTPs eksisterende semantikk forblir uendret. "
HTTP / 2 er basert på SPDY
I 2012 støttet de fleste moderne nettlesere og mange populære nettsteder (Google, Twitter, Facebook osv.) SPDY. Ettersom populariteten til SPDY økte, begynte HTTP Working Group (HTTP-WG) å jobbe med å oppdatere HTTP-standarden.
Fra dette tidspunktet ble SPDY grunnlaget og eksperimentell gren for nye funksjoner i HTTP / 2. På det tidspunktet undersøkte vi hvordan SPDY kan forbedre surfing Hva er SPDY, og hvordan kan det maksimere nettopplevelsen din? Hva er SPDY, og hvordan kan det maksimere nettopplevelsen din? Les mer . Siden den gang ble versjon 2-standarden utarbeidet, godkjent og publisert.
Mange av funksjonene fra SPDY ble integrert i HTTP / 2, og Google sluttet til slutt å støtte denne protokollen tidlig i 2016.
De fleste nettlesere sluttet til slutt å støtte SPDY, og siden det ikke er noen alternativer, blir HTTP / 2 de facto-standarden.
Mens HTTP / 2-protokollstandarden ikke er strengt bakoverkompatibel med HTTP / 1, kan kompatibilitet oppnås via oversettelse. En HTTP / 1.1-klient vil ikke forstå en HTTP / 2-server bare og omvendt, og det er grunnen til at den nye protokollversjonen er HTTP / 2 og ikke HTTP / 1.2.
Når det er sagt, en viktig del av arbeidet som tilbys av HTTP-WG, er å sørge for at HTTP / 1 og HTTP / 2 kan oversettes frem og tilbake uten tap av informasjon.
Eventuelle nye mekanismer eller funksjoner som introduseres vil også være versjonsuavhengige og bakoverkompatible med det eksisterende nettet.
HTTP / 2 er egentlig ikke noe en bruker kan implementere, men det er ting vi kan gjøre for å påvirke surfehastigheten vår. Tror du på noen av disse vanlige mytene for å øke hastigheten på internett? 5 Myter om å øke hastigheten på Internett og hvorfor de ikke fungerer 5 Myter om å øke hastigheten på Internett og hvorfor de ikke fungerer Internett-hastighet er en kritisk måling i det 21. århundre. Imidlertid er det mye feilinformasjon på nettet om hvordan du kan gjøre forbindelsen raskere. Her er fem myter du ikke burde tro. Les mer
Fordelene og funksjonene ved HTTP / 2
HTTP / 2 kommer med noen gode oppdateringer til HTTP-standarden. Noen av de viktigere er binær innramming, multipleksing, strømprioritering, flytkontroll og server push.
Binær innramming
Etter oppdateringen til HTTP2 / blir HTTP-protokollkommunikasjonen delt opp i en utveksling av binære kodede rammer. Disse rammene er kartlagt til meldinger som tilhører en bestemt strøm. Strømmene blir deretter multiplekset (vevd sammen på en måte) i en enkelt TCP-forbindelse.
Det nye binære innrammingslaget introduserer litt ny terminologi; Strømmer, meldinger og rammer.
- Strømmer er toveis strømmer av byte som har en eller flere meldinger.
- Hver av disse strømningene har en unik identifikator og kan føre toveismeldinger ved å bruke valgfri prioritetsinformasjon.
- Rammer er den minste kommunikasjonsenheten i HTTP / 2 som inneholder spesifikke datasett (HTTP-headere, nyttelast av meldinger etc.). Overskriften vil i det minste identifisere strømmen som rammen tilhører.
- Meldinger er et komplett sett med rammer som kartlegger 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 lar oss bruke en enkelt TCP-tilkobling, til det som tidligere krevde flere.
multiplexing
HTTP / 1.1 sikrer at bare ett svar kan leveres av gangen per tilkobling. Og nettleseren vil åpne flere TCP-tilkoblinger hvis klienten ønsker å lage flere parallelle forespørsler.
HTTP / 2 fjerner denne begrensningen av HTTP / 1.1 og muliggjør fulle forespørsler og responsmultipleksering. Dette betyr at klienten og serveren kan dele opp en HTTP-melding i uavhengige rammer, som deretter flettes sammen og settes sammen i andre enden.
Totalt sett er dette den viktigste forbedringen av HTTP / 2, da den delvis vil eliminere behovet for flere tilkoblinger. Dette vil igjen introdusere en rekke ytelsesfordeler på tvers av alle webteknologier.
Det reduserte antallet tilkoblinger betyr færre håndtrykk for Transport Layer Security (TLS), bedre gjenbruk av økter og en samlet reduksjon i krav til klient og serverressurs. Dette gjør applikasjoner raskere, enklere og billigere å distribuere.
Nettsteder med mange eksterne eiendeler (bilder eller skript) vil se de største ytelsesgevinstene ved HTTP / 2-multiplexing.
Stream prioritering og avhengighet
Ytterligere forbedringer av de multipleksede bekker blir gjort med vekt- og strømavhengighet. HTTP / 2 lar oss gi hver strøm en vekt (en verdi mellom 1 og 256), og gjøre den eksplisitt avhengig av en annen strøm.
Denne avhengighets- og vektkombinasjonen fører til at det opprettes et prioriteringstre, som forteller serveren hvordan klienten foretrekker å motta svar.
Serveren vil bruke 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 på HTTP / 1.1. Siden HTTP / 2-strømmer er multiplekset i en enkelt TCP-tilkobling, er imidlertid ikke måten flytkontrollen i HTTP / 1.1 fungerer lenger.
Kort sagt er det nødvendig med flytkontroll for å stoppe bekker som forstyrrer hverandre for å forårsake blokkering. Dette muliggjør multipleksing. HTTP / 2 gjør det mulig å bruke en rekke flytkontrollalgoritmer uten å kreve protokollendringer.
Ingen algoritme for flytkontroll er spesifisert i HTTP / 2. I stedet er det gitt et sett med byggeklosser som hjelper kunder og servere med å anvende sin egen flytkontroll.
Du finner detaljene til disse byggesteinene i "Flow Control" -delen av HTTP / 2 internettutkastet.
Server Push
Nettleseren din vil normalt be om og motta et HTML-dokument fra en server når du først besøker en side. 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 ikke serveren sende disse eiendelene før nettleseren ber om dem, og hver eiendel krever en egen forespørsel (dvs. flere håndtrykk og tilkoblinger).
Server push vil redusere latency ved å la serveren sende disse ressursene uten spørsmål, siden den allerede vet at klienten vil kreve dem. Så i eksemplet over 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 websidene. Det inkluderer dynamisk oppdatering av websider, brukergrensesnitt og mer. La oss dykke inn i hva Javascript handler om. Les mer på websider), og bilder til nettleseren for å vise siden raskere.
I utgangspunktet lar server push en server til å sende flere svar for en enkelt klientforespørsel.
Om enn manuelt, er dette effekten vi for øyeblikket får ved å legge CSS eller JS inn i HTML-dokumentene våre - vi skyver den inline ressursen til klienten uten å vente på at klienten ber om det.
Dette er et stort skritt unna den gjeldende HTTP-standarden for streng en-til-en-arbeidsflyt med forespørsel.
Begrensningene for HTTP / 2
SPDY hadde en litt strengere policy for sikkerhet og krevde SSL-kryptering for alle tilkoblinger. HTTPS / 2 krever ikke kryptering, men mange tjenester vil ikke tjene HTTP / 2 uten SSL.
Alle større nettlesere støtter HTTP / 2, men ingen av dem støtter det uten kryptering. CanIUs nettsted har en flott tabelloversikt over gjeldende nettleserstøtte for HTTP / 2, som vist over.
Bakoverkompatibiliteten og oversettelsene mellom HTTP / 1.1 og HTTP / 2 vil redusere sidehastigheten.
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 ditt ved å aktivere HSTS.
Er HTTP / 2 det 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 hvordan internett fungerer og hvordan applikasjoner og servere snakker sammen.
Det er ingen krav for å tvinge til bruk av HTTP / 2, men så langt tjener det bare fordeler og ingen ulemper. Det er også en ganske liten endring fra et brukerperspektiv, en som folk ikke virkelig vil legge merke til.
I følge W3Tech støtter 31, 7% av de 10 beste nettstedene for øyeblikket HTTP / 2. Den raskeste måten for de fleste av dere å aktivere HTTP / 2 på nettstedet ditt, er å bruke Cloudflares CDN.
Den neste foreslåtte standarden (HTTP / 3) er allerede i verk og er basert på QUIC, et annet eksperimentelt prosjekt av Google. I oktober i år ba IETFs HTTP-WG og QUIC Working Group 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 vurdere å bytte nettleser. 5 Google Chrome-alternativer for en bedre nettleser på stasjonær eller mobil 5 Google Chrome-alternativer for en bedre nettleser på stasjonær 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: Datanettverk, HTTP / 2, SPDY.