Ooit de contacten-app op je telefoon gebruikt? Stel je dat voor, maar dan voor het internet. DNS is het telefoonboek van het internet dat de URL van een site (zoals cside.dev) koppelt aan het numerieke IP-adres van de servers die deze sites hosten. Zonder DNS zouden we die numerieke IP-adressen voor elke website moeten onthouden en invoeren - een onpraktische taak voor de meeste mensen, aangezien we al op onze telefoon vertrouwen om nummers op te slaan.

Hoe DNS werkt
Wanneer je een website bezoekt, vraagt je browser aan een DNS-resolver om het IP-adres van het domein te vinden dat je probeert te bezoeken. Deze resolver is meestal de DNS-server van je internetprovider, of een openbare DNS-dienst zoals CloudFlare.
Als het antwoord nog niet gecached is, voert de DNS-resolver een recursieve lookup uit, die door de volgende topologie gaat:
- De DNS-rootserver stuurt de query naar het juiste top-level domein (bijv. .dev)
- De top-level domeinserver wijst de query in de richting van de autoritatieve servers van het domein
- De autoritatieve server levert het uiteindelijke IP-adres voor het domein, stuurt het terug naar de resolver om te cachen en te leveren aan je browser.
Deze resolutie gebeurt vaak supersnel, maar moet wel plaatsvinden voordat een website kan beginnen met laden.
DNS-lookuptijd
DNS-lookuptijd is de duur vanaf het moment dat je systeem een DNS-verzoek verstuurt tot het moment dat het een antwoord ontvangt van een lookupserver. Over het algemeen duurt dit slechts enkele milliseconden, maar het telt op bij de laadtijd van je pagina. Typische queries variëren van 20 tot 120 milliseconden, en “optimale” DNS-snelheid wordt beschouwd als onder de 50 milliseconden of minder.
Deze snelheid is belangrijk omdat bezoekers moeten wachten voordat je website zelfs maar begint te laden, wat de rest van de content blokkeert totdat het IP is opgelost. Als je DNS traag is, voelt je site langzamer aan - en als de query een timeout krijgt of faalt, nemen gebruikers misschien aan dat de site down is en geven ze op.
Je moet ook rekening houden met het aantal DNS-lookups dat nodig is om een pagina te laden. Je browser doet slechts één query per uniek domein, maar als je site third-party content van veel verschillende sites haalt, moet het meerdere lookups uitvoeren. Deze queries kunnen optellen, dus het beperken van het aantal externe domeinen op je site vermindert deze DNS-overhead en helpt content sneller te laden.
Waarom caching helpt bij prestaties
Gelukkig hoeven lookups niet bij elk bezoek plaats te vinden, dankzij caching. DNS-caching slaat de resultaten van DNS-lookupqueries op, zodat herhaalde verzoeken voor hetzelfde domein veel, veel sneller kunnen worden opgezocht zonder externe servers te contacteren.
Een DNS-record heeft een waarde genaamd TTL, of Time to Live, die beschrijft hoe lang het in een cache moet worden bewaard. Zolang een gecachte entry niet is verlopen of gewijzigd, gebruikt de resolver en/of je apparaat het opgeslagen IP-adres en slaat de volledige lookup over. Dit zorgt voor vrijwel geen lookupvertraging bij de tweede paginalading, en vermindert DNS-gerelateerde wachttijd.