HTTP/2, de nieuwe koning van het internetverkeer

Het HyperText Transfer Protocol, ofwel HTTP, bestaat al ontzettend lang. De doorgaans gebruikte versie van HTTP is versie 1.1 wat sinds 1997 bestaat.

HTTP is één van de vele ruggengraten die het internet kent maar het protocol dat de afgelopen 20 jaar is gebruikt is oud. HTTP1.1 werkt maar is niet langer optimaal en heeft verschillende limieten die we in 2017 écht niet willen. Modern uitziende websites hebben tegenwoordig een grootte en complexiteit waarmee HTTP1.1 erg veel moeite heeft. Het ooit zo revolutionaire protocol uit 1997 moet plaats maken voor iets nieuws. Sinds 2015 bestaat dat nieuwe protocol genaamd HTTP/2.

Het grote probleem van HTTP1.1

Het grootste probleem in met huidige moderne websites en HTTP1.1 is dat elk ‘element’ een nieuwe verbinding moet maken met de server. Als jouw website 3 Javascript bestanden en 2 CSS bestanden moet inladen dan worden er 6 verschillende verbindingen opgezet naar de server (basis aanvraag meegerekend). Een beetje grote website gaat al snel richting de 30-40 aanvragen per pagina en het helpt dan niet dat ook nog eens je browser het aantal verbindingen tot een server limiteert.
Hoe meer verschillende elementen op je website pagina hoe meer vertraging je oploopt. Hierbij komt vaak kijken dat data gaat opstapelen waar het niet hoeft, een goed voorbeeld hiervan is cookies. Cookies worden alke keer opnieuw verstuurd terwijl dit eigenlijk maar één keer nodig is.

Het ontstaan van HTTP/2 en de voordelen

Dat HTTP1.1 inefficiënt is voor de complexere websites was al langer bekend, Google is daarom na veel onderzoek begonnen met een eigen internetprotocol genaamd SPDY (speedy). SPDY is maar voor een korte tijd gebruikt en was grotendeels exclusief voor Google diensten. Met name Gmail en Google maps maakten gebruik van SPDY. Google’s SPDY heeft de basis neergelegd voor het huidige HTTP/2, en veel van de functionaliteiten zijn ook overgenomen. Met name Google en Microsoft zijn betrokken geweest met de productie van HTTP/2 maar ook andere techgiganten zoals Facebook en Cisco hebben drastische bijdragen geleverd aan het project.

Multiplexing

HTTP/2 maakt gebruik van een techniek die Multiplexing genoemd wordt. Waar HTTP1.1 meerdere verbindingen moest opzetten om bestanden op te vragen van een server kan dit nu over één verbinding, dat scheelt ontzettend in tijd. Daarbovenop kan de server ook nog de volgorde bepalen waarin de bestanden gestuurd moeten worden over deze verbinding, bijvoorbeeld éérst CSS en daarna Javascript bestanden. En om het nog mooier te maken, de bestanden worden ook nog in kleine stukjes geknipt. Het voordeel hiervan is dat meerdere bestanden tegelijkertijd door de server verstuurd kunnen worden over dezelfde verbinding. Dat zorgt voor minder wachttijd en een betere datastroom.

Het verschil tussen HTTP1.1 en HTTP/2. Credit: WPMUDEV

Server Push

Een andere functie die HTTP/2 biedt is Server Push, in het kort houdt dit in dat de server alvast bestanden naar je browser stuurt nog voordat je browser hier om heeft gevraagd.

“Welkom op deze website, dit is de HTML en hier heb je alvast de benodigde CSS en Javascript bestanden” ~ een HTTP/2 server

Zonder Server Push vraagt je browser de HTML op van een website, deze HTML heeft meerdere verwijzingen naar andere bestanden op de server en vervolgens vraagt je browser aan de server: “Mag ik die andere bestanden ook hebben?”.

Dat laatste stukje van communicatie is niet meer nodig met Server Push, de bestanden zijn namelijk al van te voren naar je browser gestuurd. Het voornaamste doel van Server Push is het terugdringen van website laadtijden.

Helaas zitten er nog wel wat kronkels in het principe van Server Push, het grootste probleem is dat minder goed werkt met dynamische content op websites. Daarbovenop moet de website eigenaar zelf aangeven bij de server welke bestanden gebruik kunnen maken van Server Push, het is dus niet een automatisch systeem voor alle bestanden.

Een binair protocol

HTTP1.1 is ooit gemaakt met de gedachte dat ook mensen het moeten kunnen begrijpen, HTTP/2 is het daar niet mee eens en is volledig binair. In andere woorden, het bestaat enkel uit 01010101. HTTP/2 is gemaakt met de gedachte dat computers het snel moeten begrijpen, het doel van HTTP/2 is immers dat het voor de eindgebruiker sneller wordt. Het grote voordeel is dat de data sneller verstuurd wordt en ook sneller verwerkt kan worden door de ontvangende computer, nadeel is dat het écht een hel is om te debuggen.

Niqex en HTTP/2

Het heeft even geduurd… Maar alle webhosting pakketten die we aanbieden hebben vanaf nu ondersteuning voor HTTP/2.

Werkt het dan ook voor mijn site?

Als je een SSL certificaat hebt dan ja. Gelukkig krijg je die gratis van ons dus dat is ook een zorg minder. Wij zorgen ervoor dat alle websites die over HTTP/2 kunnen draaien dat ook doen.

Verder blijft HTTP1.1 gewoon beschikbaar voor alle websites die geen gebruik maken van SSL/HTTPS.

Ga ook van start met HTTP/2 webhosting

Deel dit verhaal

Sluit Menu
4 Shares
Share via
Copy link