HTTP2: The internet on Steroids

Featured
HTTP2: The internet on Steroids

Sinds de komst van het internet zijn wij met betrekking tot browsen niet alleen veeleisender geworden maar alles moet ook altijd beschikbaar en snel zijn. Waar vroeger (jaren '90) een website laden soms tientallen seconden duurde, mag dit in deze tijd maar enkele seconden zijn. Het internet is zelfs communicatiemiddel nummer één geworden, de pen maakt plaats voor het toetsenbord.

Ontwikkelingsfase

Om aan bovenstaande eis te blijven voldoen en zelfs te verbeteren, is Google (samen met IETF) in 2009 aan de ontwikkeling van het HTTP2 protocol begonnen welke het jaar erna in Google Chrome 6 is geïmplementeerd. Daarna hebben grote partijen zoals Facebook, Twitter en Cloudflare het protocol al snel geïmplementeerd (begin 2014 afgerond). Firefox is in Q3 van 2014 begonnen met het implementeren van HTTP2 en is sinds begin 2015 (Firefox versie 36) beschikbaar.

Hoe het werkt?

HTTP1.1 maakt bij elke website bron een nieuwe verbinding met de webserver (computer waar websites op draaien). Bijvoorbeeld op basis van HTTP1.1: je gaat naar orange-juice.nl daarna download je ons logo (.png bestand), de vormgeving (.css bestand) en nog wat tools en effecten (.js bestand). Hiervoor zijn minimaal 3 verbindingen nodig. Wanneer je ook nog eens een HTTPS/Beveiligde verbinding met de website hebt kan dit met HTTP1.1 nog langer duren. HTTP2 daartegen verzamelt het verzoek en stopt dit in één verbinding wat veel tijd scheelt (soms seconden). Hieronder een illustratie, HTTP1.1 versus HTTP2:

Http2
HTTP2: The internet on Steroids

Vandaag

De acceptatie en implementatie van HTTP2 is al aardig op weg, het wereldwijde internet verkeer gaat momenteel al voor ruim 70% via HTTP2 en neemt met de dag toe. De meeste webservers hebben HTTP2 ondersteuning, bijvoorbeeld; Nginx, node.js, LiteSpeed en Apache. Helaas moeten de .NET webapplicaties nog even op een IIS ondersteuning wachten...

Volledige ondersteuning
Eind 2016 komt Microsoft Server 2016 uit waar Microsoft bij de rest van de webserver software met HTTP2 ondersteuning aansluit waarmee de rest van de 30% ook via HTTP2 gaat.

Voor de professional
Wellicht is de wens er om eerder met .NET op HTTP2 te draaien. Gelukkig is dat mogelijk door een reverse proxy vóór de IIS omgeving(en) op te zetten. Nginx is hier een goed voorbeeld van, dus als de wens er is moet je even naar dit artikel kijken. Het reduceert niet alleen je laadtijden maar geeft de IIS omgeving(en) ook minder te doen wat weer in meer voor minder resulteert.

Credits featured image: https://habrahabr.ru/company/nixsolutions/blog/304518/