Het Hyper Text Transfer Protocol (HTTP) is het eenvoudige, beperkte en eigenlijk vrij saaie application layer protocol dat de basis vormt van het wereldwijde web. Saai, maar wel cruciaal! HTTP zorgt er namelijk voor dat we publiek toegankelijke, aan netwerken verbonden gegevensbronnen kunnen opvragen. Het protocol heeft zich over de jaren heen ontwikkeld van een simpel protocol naar een snel, veilig en veelzijdig medium voor digitale communicatie.
Bij Kinsta zijn we verslaafd aan het optimaliseren van laadtijden van websites die op ons platform beheerd worden. Je zal dan ook enorm veel handleidingen vinden die we speciaal over dit onderwerp hebben geschreven. Check bijvoorbeeld onze startersgids over snelheidsoptimalisatie van websites.
Omdat wij de nieuwste technologieën razendsnel omarmen, hebben we ervoor gezorgd dat de volledige Kinsta website en admin op HTTP/2 loopt. Onze nieuwe Google Cloud infrastructuur ondersteunt bovendien HTTP/2 voor al onze klanten. Deze uitgebreide handleiding legt HTTP/2 uit aan eindgebruikers, ontwikkelaars en bedrijven die naar innovatie streven. Hier zul je alles te weten komen over HTTP/2, van algemene informatie tot de meer gevorderde onderwerpen.
Deze handleiding gaat in op de volgende aspecten van HTTP/2
Wat is HTTP/2?
HTTP werd voorgesteld door Tim Berners-Lee, de pionier van het wereldwijde web, die het applicatieprotocol ontwikkelde met de bedoeling om op een simpele manier high-level datacommunicatiefuncties tussen webservers en clients uit te kunnen voeren.
De eerste gedocumenteerde versie van HTTP kwam in 1991 als HTTP0.9 op de markt wat in 1996 leidde tot de officiële introductie van HTTP1.0. In 1997 volgde HTTP1.1 en sindsdien worden er regelmatig kleine verbeteringen uitgebracht.
In februari 2015 is HTTP herzien en door de Internet Engineering Task Force (IETF) HTTP Working Group ontwikkeld tot de tweede grote versie van het applicatieprotocol, met HTTP/2 als resultaat. En in mei 2015 is de HTTP/2 implementatiespecificatie officieel gestandaardiseerd naar Google’s HTTP-compatibele SPDY protocol. Het HTTP/2 versus SPDY ‘debat’ komt in deze handleiding verschillende keren aan bod.
Wat is een Protocol?
Voorafgaand aan het HTTP/2 versus HTTP1 debat hoort een korte toelichting over wat een protocol is, een term die je vaak zal tegenkomen. Een protocol is een stel regels die de datacommunicatiemechanismen regelt tussen clients (bijvoorbeeld webbrowsers die door internetgebruikers gebruikt worden om informatie aan te vragen) en servers (de machines die de verzochte informatie bevatten).
Protocollen bestaan over het algemeen uit drie hoofdonderdelen: header, payload en footer. Een header- die voor de payload geplaatst is – bevat informatie zoals bron- en bestemmingsadressen en andere soorten gegevens over de payload, zoals de grootte en het type. De payload is de daadwerkelijke informatie die door middel van het protocol verzonden wordt. De footer volgt na de payload en werkt als een controleveld om samen met de header client-server aanvragen te routen naar de bedoelde ontvanger en ervoor te zorgen dat payload-data foutloos verzonden wordt.
Het systeem lijkt wel een beetje op hoe je normaal brieven stuurt. De brief (payload) wordt in een envelop (header) gedaan waar het bestemmingsadres op geschreven is. Vervolgens wordt hij dichtgeplakt en bestempeld (footer) voordat het op de post gaat. Het verschil is echter dat het verzenden van digitale informatie – nullen en enen – niet zo eenvoudig is en een nieuwe soort innovatie vereist dat een oplossing kan bieden voor de versnellende technologische ontwikkelingen die voortvloeien uit de explosieve toename in het gebruik van het internet.
Het HTTP protocol bestond aanvankelijk uit simpele commando’s: GET om informatie vanaf een server op te halen en POST om de verzochte informatie aan de client te leveren. Deze simpele en ook vrij saaie commando’s hebben echter wel de basis gevormd voor de bouw van andere netwerkprotocollen. Het protocol is een volgende stap om de internetervaring en effectiviteit van gebruikers te verbeteren, en daardoor is de implementatie van HTTP/2 belangrijk ter verbetering van de online ervaring.
Doel achter de ontwikkeling van HTTP/2
Sinds haar intrede begin jaren 90 is HTTP maar een paar keer ingrijpend hervormd. HTTP1.1 is de meest recente versie en heeft de afgelopen 15 jaar de cyberwereld gediend. Webpagina’s in het huidige tijdperk van dynamische informatie-updates, resource-intensieve multimediacontent en een toenemende focus op webprestaties maken dat de oude protocoltechnologieën als gedateerd beschouwd worden. De trend naar nieuwer, sneller en beter zorgt voor de noodzaak om HTTP/2 grondig aan te passen om bovenal voor een verbeterde internetervaring te zorgen.
Het voornaamste doel van onderzoek en ontwikkeling naar een nieuwe versie van HTTP is het streven naar het combineren van drie kwaliteiten die je normaal gesproken niet binnen één enkel netwerkprotocol verwacht (zonder dat daar extra netwerktechnologieën aan te pas komen): namelijk eenvoud, hoge prestaties en robuustheid. Dit wordt mogelijk gemaakt met functies die de vertraging van het verwerken van browserverzoeken verminderen. Daarbij worden technieken als multiplexing, compressie, prioriteitsbepaling van verzoeken en serverpushes gebruikt.
Ook mechanismen als flow control, upgrade en het afhandelen van fouten werken mee om het HTTP protocol voor ontwikkelaars te verbeteren en zorgen voor hoge prestaties en weerbaarheid voor webgebaseerde applicaties.
Het collectieve systeem stelt servers in staat om efficiënter te reageren op meer informatie dan de clients oorspronkelijk aanvroegen, waardoor de tussenkomst van users niet nodig is om een website volledig in de webbrowser te laden. De Server Push capacity van HTTP/2 kan bijvoorbeeld door servers worden gebruikt om een clientverzoek te beantwoorden met de volledige content van een pagina, aangevuld met de informatie die al via de cache van de browser beschikbaar is. Efficiënte compressie van HTTP headerbestanden minimaliseert de overhead van het protocol, wat voor elk browserverzoek en serverrespons de prestaties verbetert.
De veranderingen binnen HTTP/2 zijn bedoeld om de interoperabiliteit en compatibiliteit met HTTP1.1 te behouden. Verwacht wordt dat de voordelen van HTTP/2 met de tijd door real-world experimenten toenemen en dat het vermogen van HTTP/2 ten opzichte van HTTP1.1 om prestatie-gerelateerde problemen op te lossen een grote impact zal hebben op de evolutie van het protocol.
“We vervangen HTTP niet volledig: de methoden, statuscodes en de meeste headers zullen hetzelfde blijven. In plaats daarvan herdefiniëren we hoe het “on the wire” gebruikt wordt kan worden met als doel het efficiënter te maken, wat beter is voor het internet is als geheel…” Mark Nottingham, Chair van de IETF HTTP werkgroep en lid van de W3C TAG. Bron
Het is belangrijk op te merken dat de nieuwe versie van HTTP een extensie is van haar voorganger waarvan, zeker op de korte termijn, niet verwacht wordt HTTP1.1 te vervangen. De implementatie van HTTP/2 zal geen automatische ondersteuning bieden voor alle encryptietypes die voor HTTP1.1 beschikbaar zijn, maar zal wel de mogelijkheid geven betere alternatieven of extra updates voor encryptiecompatibiliteit te ontwikkelen. Feature-vergelijkingen tussen HTTP/2 en HTTP1 en tussen SPDY en HTTP/2 hebben echter uitgewezen dat HTTP/2 de winnaar is op gebied van zowel prestaties, veiligheid als betrouwbaarheid.
Wat is er mis met HTTP1.1?
HTTP1.1 was beperkt tot het verwerken van slechts één uitstaande aanvraag per TCP connectie, waardoor browsers gedwongen werden meerdere TCP connecties te gebruiken om meerdere aanvragen tegelijkertijd te verwerken.
Het gebruik van te veel TCP connecties leidt echter tot TCP opstoppingen die zorgen voor een oneerlijke verdeling op netwerkresources. Webbrowsers die meerdere connecties gebruiken om additionele aanvragen te verwerken, gebruiken een groter gedeelte van de beschikbare netwerkresources, waardoor de netwerkprestaties van andere gebruikers in het geding komen.
Het indienen van meerdere verzoeken bij de browser zorgt ook voor duplicatie van data tijdens de data-overdracht, waardoor er extra protocollen nodig zijn om de gewenste informatie foutvrij te onttrekken bij de endnodes.
De internetindustrie moest hier dus een oplossing voor zoeken. Dit lukte, in onder andere de vorm van domain sharding, concatenation, data inlining en spriting, allemaal Engelse termen om in feite de tekortkomingen van het protocol te omzeilen. Het inefficiënte gebruik van de onderliggende TCP connecties met HTTP1.1 leidde ook tot een matige prioriteitsbepaling van verzoeken, wat er weer voor zorgde dat prestaties er exponentieel op achteruit gingen, omdat webapplicaties begonnen te groeien in hun complexiteit, functionaliteit en scope.
Kortom, het internet ontwikkelde zich ver voorbij de capaciteiten van de oude op HTTP gebaseerde netwerktechnologieën. De kernkwaliteiten van HTTP1.1 – die over het afgelopen decennium zijn ontwikkeld – leidden tot verschillende prestatie- en veiligheidsproblemen.
De Cookie Hack stelde bijvoorbeeld cybercriminelen in staat om een vorige working session opnieuw te gebruiken om wachtwoorden te stelen, omdat je met HTTP1.1 het einde van een sessie niet kan opgeven, de zogenaamde session endpoint-identify. HTTP/2 is uiteraard niet schoon van beveiligingsproblemen, maar deze nieuwe applicatieprotocol werd wel ontwikkeld met betere beveiligingscapaciteiten, zoals de implementatie van nieuwe en betere TLS features.
HTTP/2 feature upgrades
Multiplexed streams
De stroom van text format frames die met het HTTP/2 protocol verzonden worden (zowel heen als terug) en met de server en de client gedeeld worden, worden “streams” genoemd. Eerdere versies van het HTTP protocol konden slechts één stream tegelijk uitzenden, waarbij er vertraging plaatsvond tussen de uitzendingen van streams.
Het ontvangen van grote hoeveelheden mediacontent via individuele streams die 1 voor 1 verzonden worden, is erg inefficiënt en kost veel resources. De veranderingen van HTTP/2 hebben bijgedragen aan een nieuwe binaire framing layer die deze problemen wil oplossen.
Deze layer stelt de client en server in staat om de HTTP payload op te splitsen in kleine, onafhankelijke en behapbare framesequenties. Deze informatie wordt bij de ontvanger vervolgens weer samengevoegd.
Binaire frameformaten maken de uitwisseling van meerdere tegelijk lopende, onafhankelijke bi-directionele sequenties zonder vertraging mogelijk tussen de opeenvolgende streams. Deze methode van HTTP/2 biedt de onderstaande voordelen:
- De parallelle multiplexed aanvragen en responses blokkeren elkaar niet.
- Een enkele TCP verbinding wordt gebruikt om een effectief gebruik van de netwerkresources te waarborgen, ondanks het feit dat het meerdere datastreams tegelijk uitzendt.
- Optimalisatiehacks, zoals bijvoorbeeld image sprites, concatenation en domain sharding, die de prestaties van het netwerk in de weg staan, zijn niet meer nodig.
- Minder vertraging, snellere webprestaties en betere rankings bij zoekmachines.
- Verminderde OpEx en CapEx tussen het gebruik van netwerk- en IT resources.
Met deze capaciteiten worden datapakketten via meerdere streams gemixt en uitgezonden over een enkele TCP connectie. Deze pakketten worden dan gescheiden bij de ontvangende kant en gepresenteerd als individuele datastreams. Het tegelijkertijd uitzenden van meerdere parallelle aanvragen door HTTP1.1 of eerdere versies behoefde meerdere TCP connecties, die problemen veroorzaakten voor alle netwerkprestaties, ondanks dat er op hogere snelheid meerdere datastreams uitgezonden werden.
HTTP/2 Server Push
Deze feature upgrade stelt de server in staat om extra cachebare informatie op te sturen die niet door de client is opgevraagd, maar die voor toekomstige aanvragen wel wordt verwacht. Als een client bijvoorbeeld een aanvraag doet voor resource X en als er binnen het bestand ook naar resource Y verwezen wordt, dan kan de server ervoor kiezen Y mee te sturen met X, in plaats van dat er op een vervolgaanvraag van de client gewacht moeten worden.
De client plaatst de gepushte resource Y voor toekomstig gebruik in haar cache. Op deze manier wordt er een “request-respond” rondje bespaard, waardoor het netwerk minder vertraging oploopt. Server push was aanvankelijk geïntroduceerd met Google’s SPDY protocol. Steam identifiers bevatten pseudo headers zoals :path, die de server in staat stellen de push te starten voor informatie die cachebaar moet zijn. De client moet met HTTP/2 de server expliciet toestemming geven om de te cachen resources te pushen of gepushte streams te beëindigen met een specifieke stream identifier.
Andere veranderingen van HTTP/2, zoals Server push, zorgen ervoor dat de cache van de client proactief geüpdatet of ontkracht wordt. Dit wordt ook wel “Cache push” genoemd. Op de lange termijn heeft dit gevolgen voor de manier waarop servers mogelijke pushbare resources, die de client eigenlijk niet wil hebben, kan identificeren.
HTTP/2 implementatie zorgt voor aanzienlijke prestatieverbeteringen voor gepushte resources, met de volgende voordelen van HTTP/2:
- De client bespaart gepushte resources in de cache.
- De client kan gecachete resources voor verschillende pagina’s hergebruiken.
- De server kan binnen dezelfde TCP connectie de gepushte resources samen met de aanvankelijk aangevraagde informatie multiplexen.
- De server kan gepushte resources als prioriteit stellen, een flinke verbetering in prestaties van HTTP/2 ten opzichte van HTTP1.
- De client kan gepushte resources afwijzen om ervoor te zorgen dat er een effectieve repository bijgehouden wordt van gecachede resources of de Server Push in zijn geheel uitzetten.
- De client kan ook het aantal gepushte streams die gemultiplext worden beperken.
Soortgelijke push-capaciteiten zijn al beschikbaar met suboptimale technieken, zoals Inlining to Push server responses. Server push biedt echter een oplossing op het protocolniveau en zorgt op die manier voor het voorkomen van complicaties die op kunnen treden bij optimalisatiehacks die de capaciteiten van het applicatieprotocol dwars kunnen zitten.
HTTP/2 multiplext en stelt prioriteiten op voor de gepushte datastreams om voor een betere transmissie te zorgen. Dit doet het in de vorm van een ingebouwd beveiligingsmechanisme om van de server toestemming te krijgen om de resources op voorhand te pushen..
Binaire protocolslen
De nieuwste versie van HTTP is sterk verbeterd op het gebied van capaciteiten en attributen als het transformeren van een tekstprotocol naar een binair protocol. HTTP1.x gebruikte tekstcommando’s om request-response cycli uit te voeren. HTTP/2 zal binaire commando’s (enen en nullen) gebruiken om dezelfde taken uit te voeren. Hiermee worden complicaties met framing verholpen en wordt de implementatie van commando’s die vaak verwarrend waren, omdat ze zowel tekst als optionele ruimten bevatten, vereenvoudigd.
Al kost het waarschijnlijk meer moeite om binaire commando’s dan tekstcommando’s te lezen, is het eenvoudiger voor het netwerk om frames te genereren en te parsen als ze binair zijn. De daadwerkelijke semantics blijven onveranderd.
Browsers die de HTTP/2 implementatie gebruiken, converteren dezelfde tekstcommando’s naar hun binaire tegenpool voordat ze deze uitzenden naar het netwerk. De binaire framing layer is niet backward compatible met HTTP1.x clients en servers en is een belangrijk instrument om grote prestatieverbeteringen over SPDY en HTTP1.x te bewerkstelligen. Het gebruik van binaire commando’s maakt ook zakelijke voordelen mogelijk voor internetbedrijven en online bedrijven, en wel op de volgende manier:
- Lage overhead in het parsen van data, een overduidelijk voordeel van HTTP/2 t.o.v. HTTP1.
- Minder gevoelig voor fouten.
- Lichtere belasting van het netwerk.
- Effectiever gebruik netwerkresources.
- Neemt zorgen over beveiliging weg die geassocieerd zijn met de tekstuele aard van HTTP1.x, zoals bijvoorbeeld response splitting aanvallen.
- Bewerkstelligt andere capaciteiten van HTTP/2, zoals compressie, multiplexing, prioriteiten stellen, flow control en het effectiever verwerken van TLS.
- Compacte representation van commando’s voor eenvoudige verwerking en implementatie.
- Efficiënt en robuust in het verwerken van data tussen client en server.
Stream prioriteitsbepaling
HTTP/2 implementatie stelt de client in staat om prioriteit toe te kennen aan specifieke datastreams. Ook al is de server niet verplicht deze instructies van de server te volgen, het mechanisme stelt de server in staat om de verdeling van netwerkresources te optimaliseren naar de behoeften van de eindgebruiker.
Stream prioriteitsbepaling werkt door Dependencies en Weight toe te kennen aan elke stream. Hoewel alle streams noodzakelijkerwijs afhankelijk zijn van elkaar, krijgen de afhankelijke streams een gewicht tussen 1 en 256 toegewezen. Er is nog onenigheid over de puntjes op de i van de mechanismen achter de stream prioriteitsbepaling.
In de praktijk heeft de server zelden controle over resources als CPU- en databaseverbindingen. De complexiteit van de reguliere (server)implementatie verhindert servers in het efficiënt faciliteren van stream priority aanvragen. Onderzoek en ontwikkeling naar deze kwestie is bijzonder belangrijk voor het langetermijnsucces van HTTP/2, omdat het protocol in staat is meerdere datastreams te verwerken met een enkele TCP connectie.
Deze capaciteiten kunnen leiden tot de gelijktijdige komst van serveraanvragen die vanuit het perspectief van de eindgebruikers eigenlijk verschillen in prioriteit. Het willekeurig tegenhouden van aanvragen voor het verwerken van de datastream ondermijnt de efficiëntie en de ervaring van de eindgebruiker die met de veranderingen van HTTP/2 waren beloofd. Tegelijkertijd kan een intelligent en breed gedragen stream prioriteitsbepalingsmechanisme de onderstaande voordelen van HTTP/2 met zich meebrengen:
- Effectief gebruik netwerkresources.
- Verkorte levertijd van aanvragen van primaire content.
- Verbeterde laadtijd van pagina’s en ervaring van de eindgebruiker.
- Geoptimaliseerde datacommunicatie tussen de client en server.
- Verminderde negatieve gevolgen van netwerkvertraging.
Stateful Header compressie
Het leveren van een uitstekende ervaring voor de gebruikers vereist dat websites rijk zijn in content en grafisch goed in elkaar steken. Het HTTP applicatieprotocol is state-less, wat betekent dat elke client aanvraag zoveel informatie moet hebben als de server nodig heeft om de gewenste handeling uit te voeren. Dit zorgt ervoor dat datastreams meerdere herhaalde informatieframes dragen, zodat de server de informatie van de vorige clientaanvragen niet op hoeft te slaan.
Als websites mediarijke content leveren, dan pushen clients vaak meerdere headerframes die bijna identiek aan elkaar zijn. Dit leidt tot vertragingen en onnodig verbruik van (vaak) beperkte netwerkresources. Zonder optimalisatie van deze methode is het niet mogelijk om tot gewenste prestaties te komen met de eerder besproken mix van geprioriteerde datastreams.
HTTP/2 implementatie biedt een oplossing, doordat het grote hoeveelheden overbodige headerframes kan comprimeren. Het gebruikt de HPACK specificatie als een eenvoudige en veilig manier om headers te comprimeren. Zowel client en server slaan een lijst met headers op die in vorige client-server verzoeken gebruikt zijn.
HPACK comprimeert de individuele value van elke header voordat deze naar de server wordt overgedragen, waarna de server de gecodeerde informatie uit de lijst van eerder overgedragen headerwaarden opzoekt om zo de volledige headerinformatie te reconstrueren. HPACK headercompressie voor HTTP/2 implementatie biedt enorme prestatieverbeteringen, met onder andere onderstaande voordelen die voortvloeien uit het gebruik van HTTP/2:
- Effectieve stream prioriteitsbepaling.
- Effectief gebruik van multiplexingmechanismen.
- Verminderde resource-overhead: een van de eerste geuite zorgen in de discussies rond HTTP/2 versus HTTP1 en HTTP/2 versus SPDY.
- Codeert zowel grote headers als veelgebruikte headers, waardoor het onnodig is om de hele headerframe te verzenden. De grootte van elke individuele datastream krimpt daardoor snel.
Overeenkomsten tussen HTTP1.x en SPDY
De onderliggende applicatiesemantics van HTTP, zoals HTTP statuscodes, URIs, methodologieën en headerbestanden, blijft hetzelfde in de nieuwste versie HTTP/2. HTTP/2 is gebaseerd op SPDY, Google’s alternatief voor HTTP1.x. De echte verschillen liggen in de mechanismen die gebruikt worden voor client-server aanvragen. De volgende grafiek toont enkele overeenkomsten en verbeteringen van HTTP1.x, SPDY en HTTP/2:
How werkt HTTP/2 met HTTPS
HTTPS wordt gebruikt om een uiterst veilig netwerk tot stand te brengen dat computers, machines en servers met elkaar verbindt om gevoelige zakelijke en consumenteninformatie op een verantwoorde manier te verwerken. Banken die financiële transacties verwerken en zorginstellingen die patiëntendossiers beheren zijn organisaties die bij uitstek doelwit zijn van cybercriminelen. HTTPS werkt als een effectieve beschermingslaag tegen aanhoudende cyberdreigingen, maar is niet het enige beveiligingsmechanisme dat gebruikt wordt om complexe cyberaanvallen af te wenden in deze high-value zakelijke netwerken.
De HTTP/2 browsersupport gebruikt HTTPS encryptie en vult de algehele beveiligingsprestaties van HTTPS aan. Features als minder TLS handshakes, verminderd resourcegebruik voor zowel de client als server en verbeterde capaciteiten om bestaande websessies opnieuw te gebruiken terwijl het de kwetsbaarheden van HTTP1.x verwijderd, maken HTTP/2 tot voornaamste factor in het beveiligen van digitale communicatie in gevoelige netwerkomgevingen.
HTTPS is niet beperkt tot high-profile organisaties, en cyber security is net zo waardevol voor online bedrijfseigenaren, alledaags bloggers, e-commerce en zelfs socialmediagebruikers. HTTP/2 heeft altijd de nieuwste versie van TLS nodig, en alle online gemeenschappen, bedrijfseigenaren en webmasters moeten ervoor zorgen dat hun websites standaard HTTPS gebruiken.
Gangbare manieren om HTTPS in te stellen zijn onder andere webhostingpakketten, het aanschaffen, activeren en installeren van veiligheidscertificaten en uiteindelijk het updaten van de website om HTTPS te gebruiken.
De grootste voordelen van HTTP/2
Kijk je binnen netwerken en vergelijk je geografische locaties, dan is internetsnelheid nergens hetzelfde. De alsmaar mobieler wordende gebruiker zorgt voor een verhoogde vraag naar goede internetprestaties op alle apparaten, ook al kunnen mobiele netwerken niet op tegen het snelle breedbandinternet. HTTP/2 is een haalbare oplossing voor een volledig vernieuwd en herziend netwerk- en datacommunicatiemechanisme, met de volgende voordelen:
Webprestatie
Deze term vat alle voordelen van de veranderingen door HTTP/2 samen. HTTP/2 benchmarkresultaten (zie het hoofdstuk: Vergelijking van prestatiebenchmarks van HTTPS, SPDY en HTTP/2) tonen de prestatieverbeteringen van HTTP/2 ten opzichte van haar voorlopers en alternatieven.
Het vermogen van het protocol om meer data per client-server communicatiecyclus te verzenden en ontvangen is geen simpele optimalisatiehack, maar een echt, realiseerbaar en praktisch prestatievoordeel van HTTP/2. Je kunt het zien als de vergelijking van vacuümbuistreinen (Vactrain) met een standaard treinspoor: door de luchtweerstand te verwijderen in Vactrain tunnels kan de trein sneller reizen en meer passagiers transporteren. Het benut op deze manier de beschikbare kanalen beter, zonder de noodzaak voor grotere motoren, lichter gewicht en om voertuig aerodynamischer te maken.
Technologieën als multiplexing leveren extra ruimte om tegelijkertijd meer data te verzenden, zoiets als Airbus vliegtuigen die meerdere verdiepingen aan zitplaatsen hebben.
En wat gebeurt als datacommunicatiemechanismen alle hindernissen wegnemen om webprestaties te verbeteren? De secundaire gevolgen van verbeterde webprestaties zijn een verhoogde klanttevredenheid, betere zoekmachineoptimalisatie, hoge productiviteit en beter gebruik van resources, uitbreiding van het gebruikersbestand, betere verkoopcijfers en nog veel meer.
Gelukkig is het in gebruik nemen van HTTP/2 veel gemakkelijker te doen dan het bouwen van vacuümbuizen voor grotere locomotieven.
Prestaties op mobiel internet
Miljoenen internetgebruikers bezoeken het web voornamelijk via hun mobiele apparaten. Het “post PC” tijdperk heeft het gebruik van de smartphone voor webgebaseerde diensten enorm gestimuleerd en de alledaagse computertaken worden nu onderweg gedaan in plaats van achter desktopcomputers.
HTTP/2 is ontworpen met de huidige trends in webgebruik in het achterhoofd. Mogelijkheden zoals multiplexing en headercompressie werken goed om de vertraging bij het verkrijgen van toegang tot internetdiensten via mobiele datanetwerken met een beperkte bandbreedte per gebruiker te verminderen. HTTP/2 optimaliseert de webervaring voor mobiele gebruikers met de hoge prestaties en beveiliging die in het verleden alleen bij desktop-internetgebruik mogelijk was. De voordelen van HTTP / 2 voor mobiele gebruikers zal een onmiddellijke positieve impact hebben op de manier waarop online bedrijven hun klanten in de cyberwereld benaderen.
Goedkoper internet
De kosten van internetgebruik zijn sinds het begin van het web gekelderd. Het toegankelijker en sneller maken van internettoegang is altijd het doel geweest in de vooruitgang van internettechnologieën. Ondertussen lijken kostenverbeteringen een knelpunt te zijn geworden, vooral gezien de beweringen rond het monopolie van telecomdienstverleners.
HTTP/2 belooft een hogere doorvoer en verbeterde efficiëntie van datacommunicatie, waardoor telecomproviders hun operationele kosten kunnen verlagen terwijl de normen voor snel internet worden gehandhaafd. De verlaagde operationele kosten zullen dienstverleners aanmoedigen om prijzen te verlagen voor de low-end markt en hogesnelheidsservice layers te introduceren voor het bestaande prijsmodel.
Uitgebreid bereik
De dichtbevolkte markten in Azië en Afrika blijven onvoldoende bediend, met beperkte toegang tot betaalbaar internet. Internetdienstverleners richten zich met hun investeringen erop om de hoogste marges op hun geleverde diensten te krijgen, daarbij ligt de focus op stedelijke en ontwikkelde gebieden. De voordelen van HTTP/2 die leiden naar de grootschalige toepassing van het geavanceerde applicatieprotocol zullen de congestie van het netwerk verminderen en zo bronnen en bandbreedte besparen voor onderbediende geografische locaties.
Mediarijke ervaring
De moderne webervaring draait om het leveren van supersnelle laadtijden van pagina’s met mediarijke content. Internetgebruikers eisen ogenschijnlijk mediarijke content en diensten die regelmatig geüpdatet worden. De kosten van de onderliggende infrastructuur zijn niet altijd betaalbaar voor startende internetbedrijven, zelfs als die op abonnementsbasis via de cloud geleverd worden. De voordelen van HTTP/2, en technologiefuncties zoals headercompressie, verkleinen misschien niet de werkelijke bestandsgrootte maar helpen wel een paar bytes aan overhead weg te halen, om vervolgens resource consumerende mediarijke content tussen client en servers te verzenden.
Verbeterede mobiele ervaring
Progressieve online bedrijven volgen een Mobile-First strategie om de explosieve toename in de mobiele gebruikersbasis effectief te targeten. Hardwarebeperkingen voor mobiele apparaten zijn misschien wel de grootste belemmering voor een goede mobiele webervaring die beïnvloed wordt door de extra tijd die nodig is om browseraanvragen te verwerken. HTTP/2 verkort laadtijden en brengt netwerkvertraging naar een acceptabel niveau.
Verbeterd gebruik van technlologie
Het verbruik van resources om mediarijke socialmediacontent en complexe webontwerpen te leveren, is aanzienlijk toegenomen voor browseraanvragen van client- en serververwerkers. Hoewel webontwikkelaars passende oplossingen hebben gevonden door middel van optimalisatiehacks, was een robuuste en betrouwbare oplossing in de vorm van HTTP/2 onvermijdelijk. Functies als headercompressie, server pushes, stream dependencies en multiplexing dragen allen bij aan een verbeterd netwerkgebruik en zijn daarmee de voornaamste voordelen van HTTP/2.
Beveiling
De voordelen van HTTP/2 reiken voorbij prestaties doordat het HPACK algoritme HTTP/2 in staat stelt de gangbare beveiligingsbedreigingen te omzeilen. Deze zijn namelijk gericht op op tekst gebaseerde applicatie layer protocols. HTTP/2 bevat binaire commando’s en staat compressie van de HTTP header metadata toe door een ‘Security by Obscurity’ methode te volgen dat gevoelige data beschermt die tussen clients en servers verzonden wordt. Het protocol biedt verder volledige ondersteuning voor encryptie en vereist een verbeterde versie van Transport Layer Security (TLS1.2) voor verbeterde gegevensbescherming.
Innovatie
HTTP/2 staat voor innovatie en hoge webprestaties. HTTP/2 ondersteunt de cyberwereld zoals we die nu kennen, en veranderingen in HTTP/2 zijn voornamelijk gebaseerd op het SPDY protocol van Google. Dit protocol heeft enorme sprongen gemaakt ten opzichte van de verouderde versies van HTTP1.x. Binnenkort zullen SPDY en alle eerdere versies van HTTP bijna volledig vervangen worden. Er hoeft niet langer gebruik te worden gemaakt van complexe weboptimalisatiehacks, wat HTTP/2 browserondersteuning tot een realistische oplossing maakt om hoogwaardige websites en online services mee te produceren.
Voordelen van HTTP/2 SEO
Het veld van SEO marketing begeeft zich ergens tussen kunst en wetenschap. Traditionele SEO praktijken slagen er niet in de ranking van zoekmachines te manipuleren als gevolg van de steeds complexere algoritmen die gebruikt worden door populaire zoekmachines. Online bedrijven moeten hun marketingtactieken aanpassen aan die complexe algoritmen. Daarvoor zijn slimmere investeringen nodig. Uitstekend ontworpen websites worden opgezet, die niet alleen geoptimaliseerd zijn voor snelheid, maar van begin tot einde gebouwd zijn voor de beste prestaties, beveiliging en gebruikerservaring. Dit alles, om ervoor te zorgen dat zoekopdrachten ontvangen worden die de meest nauwkeurige informatie en service bevatten, en gemakkelijk toegankelijk zijn voor een wereldwijde doelgroep.
Zoekmachineoptimalisatie gaat echter verder dan front-end marketingtactieken en omvat ook de volledige levenscyclus van de communicatie tussen client en server. SEO die zich alleen richt op front-end heeft sinds komst van de nieuwste digitale communicatietechnologieën zijn status verloren. HTTP/2 heeft een enorme impact gehad op SEO marketing, waardoor webontwikkelaars en marketeers gedwongen worden hun technieken te herzien.
Een cruciale factor voor zoekmachineoptimalisatie is vandaag de dag het implementeren en optimaliseren van de infrastructuur voor HTTP/2, wat veelbelovende prestatievoordelen oplevert. Online bedrijven die niet over voldoende organische gebruikers beschikken, kunnen het zich niet veroorloven om HTTP/2 en de daaruit voortvloeiende SEO boosts te negeren. Ze concurreren namelijk met steeds groter wordende online bedrijven die op basis van innovatie en hoogwaardige online dienstverlening nog beter scoren met de implementatie van HTTP/2 op hun servers.
Vergelijking van prestatiebenchmarks van HTTPS, SPDY en HTTP/2
De volgende vergelijkingen van prestatiebenchmarks tussen HTTPS, SPDY en HTTP/2 geven een duidelijk beeld van de webprestatieverbeteringen als gevolg van gebruik van het nieuwste applicatieprotocol.
HTTP/2 benchmarkresultaten bevestigen het idee dat headercompressie, server push en andere tools die specifiek worden gebruikt om de paginasnelheid en gebruikerservaring te verbeteren daadwerkelijk werken:
Testresultaten: Deze test vergelijkt HTTPS, SPDY3.1 en HTTP/2:
- De grootte van clientaanvragen en serverresponsheaders: HTTP/2 benchmarks laten zien hoe het gebruik van het headercompressie mechanisme de headergrootte aanzienlijk verkleint, terwijl SPDY alleen de header verkleint die gebruikt wordt in de serverrespons voor dit specifieke verzoek. HTTPS verkleint tijdens de request- en responsopdrachten de grootte van de header niet.
- De grootte van het serverresponsbericht: hoewel de serverrespons bij HTTP/2 groter is, biedt het een sterkere encryptie voor een verbeterde beveiliging.
- Aantal TCP connecties dat wordt gebruikt: HTTP/2 en SPDY gebruiken minder netwerkresources doordat ze meerdere aanvragen gelijktijdig verwerken (multiplexing) en daardoor voor minder vertraging zorgen.
Op weg naar een beter internet: HTTP/2 browserondersteuning en beschikbaarheid
HTTP/2 is al beschikbaar, met voldoende ondersteuning voor webservers, browsers en mobiel. Technologieën op je site die HTTP1.x gebruiken worden niet aangetast bij het implementeren van HTTP/2 maar vereisen een kleine update om het nieuwe protocol te ondersteunen. Je zou netwerkprotocols kunnen beschouwen als gesproken talen. Het communiceren met nieuwe talen is alleen mogelijk zolang ze goed begrepen worden. Op eenzelfde manier moeten de client en server geüpdatet worden met het HTTP/2 protocol om de datacommunicatie te kunnen ondersteunen.
Clientondersteuning
Internetgebruikers hoeven zich geen zorgen te maken over het moeten configureren van hun desktop- en mobiele webbrowser voor ondersteuning van HTTP/2. Google Chrome en Firefox ondersteunen de technologie al jaren, en Apple heeft in 2014 HTTP/2 browserondersteuning ook toegevoegd aan de Safari-webbrowser. Internet Explorer verplicht gebruikers om ten minste Windows 8 te gebruiken voor de ondersteuning van het nieuwste applicatieprotocol.
De grotere mobiele webbrowsers, waaronder de toepasselijk genaamde Browser van Android, Chrome voor Android en iOS en Safari in iOS 8 (en hoger) ondersteunen HTTP/2 voor mobiele webtoegang. Op basis van de HTTP/2 benchmarks worden internetgebruikers geadviseerd om de nieuwste stabiele releases van mobiele en desktop webbrowsers te installeren, om zo de maximale prestatie- en beveiligingsvoordelen van het applicatieprotocol te benutten.
Webserverondersteuning: Apache en Nginx
Online dienstverleners die op locatie of in de cloud servers gebruiken, moeten webservers bijwerken en configureren om ondersteuning voor HTTP/2 toe te voegen. Bij Kinsta hebben we onze servers natuurlijk al aangepast! Internetbezoekers die toegang hebben tot informatie van deze servers kunnen alleen HTTP/2 gebruiken zolang de webserver is bijgewerkt en geconfigureerd voor deze doeleinden.
Nginx servers, die 66 percent van alle actieve webservers vormen, bieden ingebouwde ondersteuning voor HTTP/2, terwijl Apache servers de mod_spdy module gebruiken om HTTP/2 browserondersteuning te bieden. De module is door Google ontwikkeld ter ondersteuning van SPDY functies voor Apache 2.2 servers, zoals multiplexing en headercompressie. Die software is nu gedoneerd aan de Apache Software Foundation.
Hoe te beginnen met het gebruik van HTTP/2
Volg deze eenvoudige stappen om HTTP/2 in te stellen op jouw website.
Stap 1
- Zorg ervoor dat HTTPS aanstaat. Schaf van een betrouwbare instatie een SSL of TLS-certificaat aan, of gebruik, mits beschikbaar, een gratis SSL van Let’s Encrypt.
- Activeer het beveiligingscertificaat
- Installeer het certificaat
- Update de website om het HTTPS protocol te activeren.
Voor Kinsta klanten
Als je een Kinsta klant bent, dan kan een SSL certificaat met een enkele druk op de knop geïnstalleerd worden.
Stap 2
Zorg ervoor dat de onderliggende netwerkinfrastructuur en serversoftware HTTP/2 ondersteunen. Nginx servers ondersteunen HTTP/2 rechtstreeks, terwijl Apache in oktober 2015 (in 2.4) ingebouwde ondersteuning heeft toegevoegd, wat betekent dat apache-servers mogelijk aanvullende modules nodig hebben om datacommunicatie met HTTP/2 browserondersteuning mogelijk te maken .
Notitie: Bij Kinsta wordt HTTP/2 standaard gebruikt voor alle sites die met HTTPS uitgevoerd worden.
Stap 3
Update, configureer en test jouw servers om ervoor te zorgen dat ze HTTP/2 ondersteunen. Deze bron beschrijft de configuratie- en testprocedure voor Apache servers. Neem contact op met je webhostingprovider om ervoor te zorgen dat HTTP/2 gereed is op je website.
Stap 4
Gebruik deze tool om te kijken of jouw HTTP/2 correct geconfigureerd is.
Tot slot
De overheersing van HTTP/2 in de cyberwereld is onvermijdelijk. Het applicatieprotocol lijkt door middel van revolutionaire datatransmissiemogelijkheden een stap vooruit ten opzichte van HTTP1.x. HTTP/2 volgt zijn voorgangers op met een technologische superioriteit die veel groter is dan de innovatiekloof waarmee traditionele datacommunicatiemechanismen van HTTP1.x destijds te maken had.
HTTP/2 is echter slechts één stap in het uitgebreide traject om paginasnelheid op het web te verbeteren. Deze Kinsta handleiding “Een startersgids over snelheidsoptimalisatie van websites” legt uit hoe je kan zorgen voor maximale snelheid, en welke prestatieknelpunten en strategische bedrijfsvoordelen gepaard gaan met verbeterde webprestaties.
Laat een reactie achter