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

Wat is SSL en waarom is het nodig?

Startend bij de basis: SSL staat voor Secure Sockets Layer, het is dé implementatie voor beveiligde verbindingen als het gaat om internetverkeer en daarmee voornamelijk het verkeer tussen je computer en de website die je bezoekt.

De naam SSL kom je misschien niet heel vaak tegen maar het is de drijvende kracht achter een afkorting die wél erg bekend is, namelijk HTTPS. HTTPS zie je tegenwoordig overal en dat is maar goed ook want dat houdt in dat het internet steeds iets veiliger wordt.

Oké, maar wat doet SSL nou eigenlijk?

Het fundament van SSL bestaat eigenlijk uit twee processen:

  1. Authenticatie
  2. Encryptie

De combinatie van deze twee functies zorgt ervoor dat de website die je bezoekt kan aangeven dat het wel écht de website is die je wilt bezoeken en dat de verbinding tussen je computer en de website versleuteld is.

Zowel de authenticatie en encryptie nemen meestal maar enkele milliseconden in en worden beide op de achtergrond geregeld vlak voordat de website die je bezoekt wordt geladen.

De eerste stap is authenticatie, dit gebeurt met een zogeheten SSL-handshake. Tijdens deze ‘handdruk’ worden certificaten uitgebreid gecontroleerd. Deze controle vindt plaats op zowel de server van de website als op je eigen computer. Op deze manier kan er worden bepaald of jij als bezoeker veilig bent voor de server en of de server veilig is voor jou als bezoeker.

Hierna begint het proces van encryptie, dit gebeurt met zogenoemde sleutels en een hele hoop wiskundige formules. Als we alle technische praat weghalen dan komt het encryptieproces ongeveer op het volgende neer:

  1. De informatie van de website wordt uit elkaar gehaald
  2. De uit elkaar gehaalde informatie wordt gemanipuleerd door de wiskundige formules
  3. De gemanipuleerde informatie wordt opgestuurd naar de website bezoeker
  4. De computer van de websitebezoeker kan de informatie weer kloppend maken en in elkaar zetten.

Als ook maar één deel van alle bovenstaande stappen niet klopt dan blokkeert het hele HTTPS protocol en krijg je als bezoeker een error te zien. Dit kun je zelf zien op de website badssl.com, hier hebben ze allemaal voorbeelden van foute HTTPS verbindingen.

En wat is daar het praktisch nut van?

Het grootste voordeel van de encryptie is dat alle informatie die uitgewisseld wordt tussen de bezoeker en server absoluut onleesbaar wordt voor iedereen die een poging waagt om mee te kijken.

Als je verbinding met een website over HTTP is in plaats van HTTPS dan is het toch echt te adviseren om geen betalingsgegevens in te vullen maar deel ook je mailadres niet. Het is namelijk mogelijk dat daardoor gegevens worden gestolen doordat iemand meekijkt met je sessie. Het gebeurt misschien niet zo vaak, maar het is mogelijk en dat is al reden genoeg om SSL en HTTPS erg serieus te nemen.

Moeten alle websites dan over SSL/HTTPS? Ook mijn blog?

Ja.

Heel veel meer valt er eigenlijk niet te zeggen over het wel of niet hebben van SSL/HTTPS. Of je nou een webshop hebt of een klein blog, SSL/HTTPS is de standaard tegenwoordig.

Er zijn een hoop andere websites of blogs die beweren dat je als kleine particuliere site geen HTTPS nodig hebt maar daar zijn we het gewoon echt niet mee eens. HTTPS heeft namelijk geen enkel nadeel behalve van een vertraging op je website van ~50 milliseconden of zelfs minder.

Sterker nog, HTTPS levert nog een extra voordeel bovenop de beveiliging! Het grote internet-orakel genaamd Google heeft in 2014 al aangegeven dat website met HTTPS automatisch een betere positie krijgen in de zoekresultaten dan websites zonder HTTPS. En niet alleen Google doet dit, ondertussen zijn alle andere zoekmachines zoals Bing en Yahoo meegegaan met dit initiatief. Het is dus naast beveiliging ook nog een zeer belangrijk SEO punt.

Nog meer nuttige dingen?

Jazeker.

Een SSL certificaat (en daarmee dus HTTPS) is nodig om gebruik te kunnen maken van HTTP/2.

HTTP/2 is een relatief nieuw internetprotocol dat we gratis ondersteunen op al onze webhosting pakketten, HTTP/2 verminderd vertragingen met websites enorm en kan ervoor zorgen dat jouw website veel snellere laadtijden heeft dan andere websites. Lees meer over HTTP/2

Wat voor SSL certificaat moet ik dan kiezen en hoe start ik ermee?

SSL certificaten bestaan in verschillende soorten en maten tegenwoordig, het perfecte certificaat voor jouw website is echt afhankelijk van jouw site en doel.

Bij onze webhosting pakketten krijg je gratis SSL certificaten van LetsEncrypt, deze certificaten zijn goed genoeg voor de meeste websites en we installeren ze ook nog voor je website, die optie is dus volledig kosteloos en is een prima oplossing om SSL/HTTPS op je website te krijgen.

Zodra je website groeit is het (soms) echter verstandig om een SSL certificaat mee te laten groeien. Als je enkel een blog hebt dan is het meestal niet nodig om veel te investeren in een SSL certificaat, het gratis LetsEncrypt certificaat wat je van ons krijgt is dan meestal voldoende, mocht je dat zelf echter niet genoeg vinden dan zijn er redelijk goedkope SSL certificaten beschikbaar met garantie.

Voor grotere websites, bedrijven en webshops is het echter een ander verhaal, als je website net nieuw is dan is het gratis SSL certificaat nog gewoon voldoende maar na een tijdje is de website gaan groeien en krijg je meer bezoekers. Als je een bedrijfswebsite hebt of een webshop dan wil je uiteraard vertrouwen uitstralen met je website. Op dat moment komen de grotere SSL certificaten in beeld, zeker het zogenoemde 'Extended Validation' SSL certificaat zorgt voor extra vertrouwen bij je bezoekers. Het Extended Validation certificaat, of korter; EV, zorgt ervoor dat de bedrijfsnaam bovenin de URL-balk te zien is. Deze certificaten zijn absoluut onkraakbaar en kunnen ongelofelijk belangrijk zijn om je online identiteit te beschermen, zeker als je al redelijk wat websitebezoekers hebt.

De wereld van SSL certificaten kan echter lastig zijn om doorheen te werken en certificaten komen in veel verschillende vormen en maten. Weet je niet wat voor certificaat je nodig hebt? Stuur ons dan een berichtje, we geven je graag advies voor de beste certificaten die aansluiten bij jouw doelen.