Artikel

Latency — Forsinkelse i netværket og hvad du kan gøre ved det

Latency er netværksforsinkelse — tid fra request til første byte. CDN reducerer fysisk afstand. HTTP/2 og HTTP/3 reducerer RTT-overhead. Preconnect eliminerer DNS/TCP-opslagstid for tredjeparts-origins.

Latency er den uundgåelige fysiske begrænsning i web performance: lyset kan kun rejse så hurtigt. En server i Singapore kan ikke svare en dansker på under ~80ms uanset serverens hastighed — det er den fysiske afstand. Latency-optimering handler om at minimere de RTT’er der skal gennemføres inden brugeren ser indhold.

Hvad latency består af

En simpel HTTPS-request gennemgår:

  1. DNS-opslag — ca. 20-120ms (afhænger af DNS TTL og caching)
  2. TCP-handshake — 1 RTT
  3. TLS-handshake — 1-2 RTT (afhænger af TLS-version og 0-RTT support)
  4. HTTP-request + svar — 1 RTT minimum

En side der fetches fra en server med 100ms RTT kan bruge 400-500ms bare på forbindelsesetablering — inden serveren sender det første byte.

HTTP-protokollens indvirkning

HTTP/1.1 håndterer én request per forbindelse ad gangen (med pipelining som sjælden undtagelse). Browseren åbner op til 6 parallelle TCP-forbindelser per origin — men hver forbindelse kræver sit handshake.

HTTP/2 multiplekser multiple requests over én TCP-forbindelse — eliminerer forbindelses-overhead for ressourcer fra samme origin. Head-of-line blocking er dog stadig et problem på TCP-niveau.

HTTP/3 bruger QUIC over UDP i stedet for TCP. Integreret TLS, elimineret head-of-line blocking, og 0-RTT resumption der genoptager forbindelser uden handshake. Særligt værdifuldt på ustabile forbindelser (mobil).

CDN — den primære latency-løsning

Et Content Delivery Network placerer caches af statisk indhold geografisk nær brugerne. I stedet for at hente fra en server i USA svarer et CDN-edge node i Frankfurt — 10ms i stedet for 100ms.

CDN reducerer latency for:

  • Statiske assets (CSS, JavaScript, billeder, fonts)
  • Cacheable HTML (statiske sites, SSG)
  • Streaming og video

CDN løser ikke latency for dynamisk indhold der ikke kan caches (personaliseret data, live APIs).

Reducer RTT-overhead

Preconnect etablerer DNS, TCP og TLS-forbindelser til tredjeparts-origins tidligt:

<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />

For Google Fonts eliminerer dette typisk 200-400ms ved første brug.

Keep-Alive genbruger TCP-forbindelser til requests mod samme server. HTTP/1.1 gør dette som default; HTTP/2 og HTTP/3 gør det endnu mere effektivt.

TLS 1.3 og 0-RTT reducerer TLS-handshake til 1 RTT (fra 2 i TLS 1.2) og tillader 0-RTT resumption for returnerende forbindelser.

Mål latency med Navigation Timing

TTFB-beregning via Performance API afspejler den samlede latency til serveren:

const nav = performance.getEntriesByType('navigation')[0];
const ttfb = nav.responseStart - nav.requestStart;
console.log(`TTFB: ${Math.round(ttfb)}ms`);

WebPageTest viser detailed waterfall der dekomponerer DNS, TCP, TLS og request-tider per ressource — det mest præcise tool til latency-debugging. → Denne artikel er en del af Web Performance — Core Web Vitals og teknisk hastighed.

Andre artikler i samme emne

Ofte stillede spørgsmål

Hvad er latency og RTT?
Latency er forsinkelsen fra en datapakke sendes til svar modtages. RTT (Round Trip Time) er den samlede tid for én rundtur — request + svar. En server i USA fra en dansk klient har typisk 80-120ms RTT. En server i Danmark har typisk 5-20ms. Lavere RTT = hurtigere TTFB og hurtigere indlæsning.
Hvad er TCP slow start og hvorfor er det relevant?
TCP slow start er en congestion-kontrol-mekanisme der begrænser datamængden i de første pakker. En ny TCP-forbindelse starter med at sende ca. 14 KB data og øger gradvist. Det betyder at de første svar er langsomme selv med hurtig server. HTTP/2 og persistente forbindelser reducerer problemet ved at genbruge eksisterende forbindelser.
Hvad gør preconnect og dns-prefetch ved latency?
preconnect (<link rel=preconnect href=https://fonts.googleapis.com>) instruerer browseren om at etablere DNS-opslag, TCP-handshake og TLS-handshake til en tredjeparts-origin tidligt — inden ressourcerne faktisk behøves. Det eliminerer 200-400ms latency der ellers opstår første gang en tredjeparts-ressource hentes. dns-prefetch (<link rel=dns-prefetch>) udfører kun DNS-opslaget og er et lettere alternativ for origins der måske bruges. Brug preconnect til kritiske origins (fonts, analytics), dns-prefetch til sekundære.
Hvad er HTTP/3 og QUIC og hvad gør det ved latency?
HTTP/3 kører over QUIC-protokollen (UDP-baseret) frem for TCP. QUIC eliminerer TCP-handshake-overhead og håndterer packet loss mere effektivt — ved tabt pakke genoverføres kun den tabte stream, ikke hele forbindelsen som i TCP. Det reducerer latency på dårlige forbindelser og mobile netværk markant. QUIC inkluderer TLS 1.3 built-in og understøtter 0-RTT genoptagelse af tidligere forbindelser. HTTP/3 er tilgængeligt på alle moderne browsere og understøttes af de fleste CDN-udbydere.
Hvad er TTFB og hvad er en god TTFB?
TTFB (Time to First Byte) er den målbare konsekvens af server-latency: tiden fra browseren sender en HTTP-request til den modtager den første byte af HTML-svaret. TTFB inkluderer DNS-opslag, TCP-handshake, TLS-handshake og server-processeringstid. Google anbefaler TTFB under 800ms for god LCP. En høj TTFB forsinker alle efterfølgende trin i indlæsningen og er en af de mest impactful performance-problemer at løse fordi den multiplicerer sig med alle ressource-downloads.

Placering i ordbogen

Latency — Forsinkelse i netværket og hvad du kan gøre ved det