Zelfs in 2019 voelt het internet vaak nog te traag aan. Zeker op mobiele apparaten zoals smartphones of als we onderweg zijn, duurt het soms ettelijke seconden vooraleer zelfs een relatief simpele website geladen wordt. Vaak komt dit door het gebruik van draadloze technologieën zoals WiFi en 4G (zie ookdeze Universiteit Van Vlaanderen lezing), maar er zijn ook andere redenen waarom het internet traag kan zijn: de snelheid van het licht en de luiheid van websitemakers.

300.000 kilometer per seconde is best traag

'Wanneer je twee uur samen spendeert met een mooi meisje lijkt het slechts enkele seconden, maar als je enkele seconden moet wachten op een website om te laden, lijkt het wel twee uur.' Het is een uitspraak die vaak aan Albert Einstein wordt toegeschreven.

Ik ben al vaak kwaad geweest op Einstein. Hij heeft immers bewezen dat we nooit sneller kunnen gaan dan de snelheid van het licht. En dat licht mag met 300.000 kilometer per seconde dan wel best snel zijn, het Universum en de Planeet Aarde zijn ook best groot, denk ik dan. Dankzij dat cijfer duurt het dus gemiddeld meer dan 13 minuten om Mars te bereiken, hebben we een vertraging van 1,3 seconden tot aan de Maan en zelfs op Aarde duurt het meer dan 100 milliseconden (1/10 van een seconde) om de ganse planeet te omcirkelen.

Die 100 milliseconden lijken misschien niet veel, maar ze vormen de basis voor grote vertragingen bij het surfen; het internet is immers een wereldwijd netwerk. Een webpagina laden is niet meer dan verschillende bestanden downloaden van een andere computer, een zogenaamde server. De gemiddelde website bestaat zo uit meer dan 65 individuele bestanden. Voor elk van die bestanden moeten we minstens 1 maal op en neer naar de server, voor grote bestanden zelfs meerdere keren. Als die server dan ver weg staat (laten we zeggen in Californië), kunnen die schamele milliseconden voor 1 bestand al snel oplopen tot verschillende seconden voor de volledige pagina.

Er zijn heel wat factoren die kunnen verklaren waarom jouw internet zo traag is.

Het is dan ook niet verwonderlijk dat we deze netwerkvertraging zoveel mogelijk proberen te voorkomen of verminderen. Je webbrowser gaat bijvoorbeeld de meeste bestanden die je downloadt cachen. Dit wil zeggen dat ze een tijdje opgeslagen worden op je harde schijf. Als je dan later opnieuw naar dezelfde website gaat, moet je enkel nog de bestanden downloaden die nieuw of veranderd zijn; de rest staat al mooi klaar op je eigen apparaat. Daarnaast is er een zeer grote industrie ontstaan rond een heel simpel concept: servers verhuren die fysiek dichter bij de gebruikers staan.

Zogenaamde Content Delivery networks (CDNs) hebben in bijna elk land computers ter beschikking, die je kan huren om kopieën van jouw website op te zetten. Dat is immers goedkoper dan zelf overal ter wereld je eigen servers te moeten opzetten en onderhouden. Als je Belgische gebruiker dan naar je website gaat, moet die niet helemaal op en neer naar Californië, maar downloadt die gewoon de Brusselse versie. Omdat die Brusselse servers dichterbij liggen, zijn er ook minder milliseconden nodig om de bestanden te downloaden.

Je zou denken dat websitemakers zoveel mogelijk moeite zouden doen om zo klein en simpel mogelijke bestanden te gebruiken, maar dat is jammer genoeg niet altijd het geval.

Jammer genoeg zijn deze oplossingen niet altijd voldoende. Je kan bijvoorbeeld niet alle bestanden cachen, denk maar aan advertenties, of de voorpagina van knack.be. In veel (derde-wereld) regio's, bijvoorbeeld China, Zuid-Amerika en Afrika, zijn er ook geen of minder CDN servers beschikbaar (o.a. omwille van het moeilijke politieke landschap). Het zijn nochtans net die regio's die vaak het meeste last hebben van trage verbindingen en waar een beetje snelheidswinst veel kan uitmaken.

Dit wordt mooi geïllustreerd door een anekdote van een ontwikkelaar bij YouTube. Zij hadden hun website verschillende malen sneller gemaakt in het labo, maar toen ze de nieuwe versie wereldwijd verspreidden, was de site ogenschijnlijk gemiddeld veel trager geworden. Dit kwam omdat ze nu opeens veel meer bezoekers kregen van de die regio's. De vorige YouTube-versie was veel te traag om bruikbaar te zijn, maar de snelheidswinst van de nieuwe versie was genoeg om gebruikers te overtuigen terug te komen. Door de grote afstand was alles voor hen echter wel nog altijd vrij traag, waardoor de gemiddelde statistieken een duik namen.

Niet alle apparaten zijn even snel

De fysieke afstand tussen de gebruiker (jij) en de server (de website die je bezoekt) maakt dus best veel uit (bedankt, Einstein). Maar zelfs als die afstand klein is, kunnen websites nog steeds traag zijn. Dit komt omdat moderne computers en smartphones die gedownloade bestanden ook niet zomaar onmiddellijk kunnen verwerken of uitvoeren. Hoe groter of complexer een bestand, hoe langer jouw processor nodig zal hebben om het op je scherm te toveren, zeker als je een ouder model smartphone gebruikt of als je batterij bijna leeg is.

Dit is op zijn minst raar te noemen, want er bestaat een breed gamma aan makkelijk te gebruiken gratis programma's die helpen om bijvoorbeeld afbeeldingen zo klein mogelijk te maken via beeldcompressie. Deze worden echter vaak niet of niet voldoende toegepast. De laatste jaren zien we ook dat ontwikkelaars vaak bewust kiezen voor uitgebreidere programmacode om hun website uit op te bouwen, terwijl dit ook met minder code zou kunnen. Deze nieuwe aanpak zorgt voor een verhoogde productiviteit, want ze kunnen makkelijker nieuwe functionaliteit toevoegen, maar het is (veel) trager om uit te voeren op het apparaat.

Een gebruiker zou zelf moeten kunnen kiezen in welke kwaliteit afbeeldingen en videos worden doorgestuurd.

Een verklaring voor deze ogenschijnlijke onverschilligheid van de ontwikkelaars kan mogelijk gevonden worden in het feit dat zij vaak werken met de best beschikbare computers en smartphones op de markt. Voor hen lijkt de website meer dan snel genoeg, want ze zitten vlakbij de testserver en hebben een snel apparaat. Jammer genoeg meten ze slechts zelden hoe snel de website echt laadt voor hun gebruikers. Facebook lost dit deels op door zogenaamde '2G Tuesdays': ze zetten een deel van hun ontwikkelaars verplicht op een traag 2G-netwerk en trage apparaten, zodat ze aan den lijve ondervinden hoe traag hun werk kan zijn.

Maar zelfs als ontwikkelaars wel hun best doen, zijn er vaak factoren van buitenaf die alles opnieuw vertragen. Heel veel websites verdienen tegenwoordig bijvoorbeeld vooral geld door middel van advertenties en de bestanden voor deze advertenties worden aangeleverd door externe bedrijven. Als de externe partner zelf geen moeite doet om alles te optimaliseren, dan kan je hier als ontwikkelaar weinig aan doen en zal ook jouw site trager worden. Als jij als surfer een adblockergebruikt tegen advertenties zal je vaak niet enkel verlost worden van irritante reclame, websites zullen ook een pak sneller laden.

Nieuwe perspectieven

We zien dat er dus zeker manieren zijn om het internet sneller te maken, maar dat websitemakers hier vaak bewust voor moeten kiezen. Veel van de oplossingen zijn niet triviaal toe te passen (en dus ook niet goedkoop), en worden daardoor vaak achterwege gelaten met alle trage gevolgen vandien.

Als eindgebruiker hebben we hier traditioneel nog maar weinig over te zeggen gehad; we zijn overgeleverd aan de genade van de websitemakers. Er zijn echter ook wat initiatieven om dit proberen te verhelpen. Zo bestaat er bijvoorbeeld Opera Mini. Deze browser voor je smartphone gaat van elke website automatisch een kleinere versie maken, die dus ook veel sneller zal laden en minder van je data-abonnement zal opslorpen. Jammer genoeg werken daardoor de meer complexe onderdelen van veel websites niet meer. Je moet als gebruiker dus bewust de afweging maken tussen snelheid en functionaliteit.

Een andere aanpak komt van Google in de vorm van het AMP (Accelerated Mobile Pages) project. Hiermee proberen ze (vooral nieuws)sites te dwingen hun pagina's zo klein mogelijk te houden. Ze leggen ontwikkelaars hiervoor een hele reeks regeltjes op die ze moeten volgen, anders kunnen ze naar een hoge plaats in de Google zoekresultaten fluiten. Gezien veel websites hun verkeer vooral krijgen via Google, heeft deze aanpak al veel succes gekend. Als je via de smartphone op Google zoekt, kijk dan naar een bliksem icoontje naast de resultaten: dit wil zeggen dat de pagina snel zal laden.

Hoewel deze twee voorbeelden de gebruiker al heel wat meer controle geven, ben ik zelf van mening dat we gerust nog wat verder kunnen gaan. Zo zou ik graag willen dat een gebruiker die niet te veel data wil gebruiken, zelf kan kiezen in welke kwaliteit afbeeldingen en videos worden doorgestuurd. Als je weet dat je de komende twee uur in de trein gaat zitten, moet je eigenlijk websites en blogs op voorhand kunnen laden zodat je die later kan lezen, ook al heb je even geen verbinding. Als je batterij op 10% zit, dan kan je het mogelijk wel even zonder mooie animaties doen en gebruikers met een ouder apparaat hebben mogelijk nooit boodschap aan die extra liflafjes.

Op dit moment moet elke website individueel beslissen om dit mogelijk te maken voor hun gebruikers. Het is daarom dat onder andere mijn onderzoek aan het Expertisecentrum voor Digitale Media van de Universiteit Hasselt kijkt naar manieren om dit automatisch te doen; zo kan de gebruiker voor elke website kiezen welke ervaring zij op dat moment juist nodig hebben.

Robin Marx is als computerwetenschapper verbonden aan de UHasselt. Hij is gespecialiseerd in computernetwerken en gametechnologie.