Dutch Grit


HTTP/2: de nieuwe standaard voor websites

Dat we het internet op een compleet andere manier gebruiken dan toen het in 1990 is ontstaan zal niemand verbazen. Het gebruik is enorm toegenomen en ook de toepassingen zijn behoorlijk veranderd. De techniek om websites op te vragen, het HTTP-protocol, is echter tot nu toe niet drastisch mee veranderd.

 

De in 1999 verschenen update (HTTP/1.1) is nog steeds de meest gebruikte, maar voldoet al lang niet meer aan de wensen van nu. Bij de ontwikkeling van nieuwe online oplossingen moeten we ons daarom in allerlei bochten wringen om performanceproblemen op te lossen en een acceptabele snelheid te realiseren. Daarom is enige tijd geleden het HTTP/2 protocol geïntroduceerd.

 

Wat is er veranderd?

Het belangrijkste voordeel van HTTP/2 zit hem in de snelheid waarmee websites geladen kunnen worden. Hoewel de basis van HTTP hetzelfde is gebleven, zijn er een aantal veranderingen verantwoordelijk voor deze tijdwinst.

 

Multiplexing

Wanneer een browser een website opvraagt, worden tientallen verzoeken naar de webserver gestuurd. In HTTP/1.1 kan een verzoek pas worden gestart nadat een ander verzoek is afgerond. In HTTP/2 worden alle verzoeken gebundeld en in één verbinding gestuurd, ook wel multiplexing genoemd. De server kan er vervolgens voor kiezen om bestanden in een andere volgorde terug te sturen of in stukjes op te delen, zodat maximale tijdwinst kan worden gehaald.

 

Headers

Waar HTTP/1.1 alleen compressie van bestanden ondersteunt, kan HTTP/2 ook headers comprimeren. Als je bedenkt dat de headers soms tot 10% uitmaken van de totale data die verstuurd wordt, is dat een flinke snelheidswinst.

 

Binair

Waar HTTP/1.1 data verzendt als tekst, werkt HTTP/2 met een binair protocol, waarbij data als bytes wordt verzonden. Vooral het verzenden van binaire data, zoals afbeeldingen, wordt daarmee veel efficiënter.

 

Server Push

Wanneer een website bezocht wordt, zal de browser eerst een HTML-bestand downloaden. Nadat deze opgehaald en gelezen is, wordt gekeken welke andere bestanden nodig zijn om de website goed weer te geven (bijvoorbeeld JavaScript of CSS). In HTTP/2 kan de webserver ervoor kiezen om alvast andere data mee te sturen met de HTML (zoals JavaScript of CSS), zodat de pagina direct weergegeven kan worden zonder hiervoor eerst een apart verzoek te sturen. Webpagina’s kunnen zo veel sneller geladen worden.

Alle populaire internet browsers, waaronder Firefox, Chrome en Microsoft Edge, ondersteunen HTTP/2, zodat een groot deel van de internetgebruikers al HTTP/2-websites kan bezoeken. In de toekomst zal HTTP/2 steeds meer uitgroeien tot de nieuwe standaard.

Wil je meer weten over de achtergrond en werking van HTTP/2? Blader dan eens door deze site (https://bagder.gitbooks.io/http2-explained/en/), die uiteraard zelf ook een HTTP/2-site is.

 

Back