HTTP/2: Største oppdatering siden 1999
Spesifikasjonen av en av de mest grunnleggende standardene for webben er klar. Om ikke lenge er HTTP/2 en ferdig standard.
Ifølge bloggen til Mark Nottingham, lederen i standardorganisasjonen IETFs HTTP Working Group, er spesifikasjonen for HTTP/2 nå ferdig godkjent i arbeidsgruppen. Det eneste som nå gjenstår er redigering og publisering av RFC-redaktøren for at HTTP/2 skal bli en fullverdig internett-standard. Det forventes å ta kort tid.
Selv om HTTP ikke er fullstendig omarbeidet, regnes dette likevel som en stor og viktig oppdatering. Ifølge prosjektets hjemmeside har mandatet vært å forbedre hvordan HTTP virker «i kablene», dette er ikke en fullstendig fra bunnen av omarbeidelse av protokollen.
Hovedfokuset har vært på ytelse, i særdeleshet hvordan brukeropplevde forsinkelser skal reduseres. I tillegg har prosjektet jobbet med hvordan ressursbruken til nettverk og servere kan reduseres, og ett av hovedmålene har vært å tillate nettleserne å bruke kun én forbindelse mot webserverne.
Mye av grunnlaget for HTTP/2 er Google-protokollen SPDY, som Google har bidratt med til dette prosjektet.
I kortversjon har HTTP/2 fått følgende nyheter:
- Den er binær i stedet for tekstbasert
- Den er multiplekset i stedet for sekvensiell og blokkerende
- Headerne i protokollen er komprimerte for å redusere lasten
- Den tillater serverne å «pushe» innhold proaktivt inn i nettleserens hurtiglager
Lettere transport
En av de viktigste nye funksjonene i HTTP/2 er at protokollen bruker langt færre forbindelser enn forgjengeren. Dette har blitt løst ved at HTTP/2 multiplekser mange HTTP-forespørsler inni samme forbindelse, og dette vil lette lasten for nettverk og servere.
Vi har tidligere sett at dagens nettsider bare blir tyngre og tyngre, og i gjennomsnitt besto opplastingen av en gjennomsnittlig nettside i 2014 av hele 95 separate HTTP-oppkall.
Les også: Stadig «feitere» nettsider
Siden dagens utgave av protokollen bruker en slags sekvensiell teknikk for å laste ned innhold, der kun én forespørsel på forbindelsen kan vente på at den forrige gjør seg ferdig, har nettleserne åpnet en rekke forbindelser med webserverne for å laste ned mer innhold samtidig.
I tillegg har webutviklerne lagd kompliserte omveier i koden sin for å unngå mange HTTP-kall, noe som er en kilde til unødvendig kompleksitet og dermed kan utgjøre en sikkerhetstrussel.
Dette skal altså unngås ved at HTTP/2 gjør det mulig mange samtidige oppkall multiplekses i en og samme forbindelse, uten at disse blokkerer for hverandre. Det forventes at dette grepet vil gjøre belastningen på nettverk og servere vil bli kraftig redusert, noe som tjener alle brukere av tjenester og nettverk.
Kompresjon og proaktivitet
I tillegg vil HTTP/2 bruke komprimerte protokollheadere, slik at størrelsen på hver en eneste HTTP/2-pakke blir mindre. Dette er særlig viktig når det er svært lite innhold som forespørres, siden forholdet mellom nyttelast og headere går mer i nyttelastens favør. Det forventes at dette vil forbedre kommunikasjonen spesielt over mobilnettverk, der mange oppkall med store headere vil kraftig påvirke den totale tiden det tar å laste ned dataene på websiden.
HTTP/2 kommer også til å tillate webserverne å dytte data ned til nettleserens hurtiglager for framtidig bruk. Dette kan bidra med ytterligere redusert ventetid for å få en nettside ferdig presentert i nettleseren, siden at webserveren kan begynne å overføre CSS og linkete stilark med en gang, i stedet for å vente på at nettleseren skal spørre om dem. Det vil også bli mulig for utviklerne av webtjenestene å være smarte, ved å tømme eller oppdatere hurtiglageret til nettleseren fra server-enden.
Gradvise forbedringer
På en tidligere bloggpost har Nottingham listet opp flere detaljer om hva vi kan vente oss av HTTP/2. Der bruker han også litt plass å advare om at det kommer til å ta tid før verden ser alle ytelsesforbedringene som HTTP/2 vil bidra med. Det er slett ikke bare å starte protokollen på webserveren din, og deretter forvente at sidene kommer til å laste dobbelt så raskt.
Det er flere ting som må være på plass før vi er der, et svært viktig element er at nettleserne må også bruke og utnytte mulighetene i den nye protokollen før effektene kommer for fullt.
Nottingham formulerer det slik: «Det er mer presist å se på den nye protokollen som at den fjerner en del sentrale hindringer for forbedret ytelse». Du kan lese hele denne bloggposten her.