Hva er et CDN? Content Delivery Networks forklart enkelt
Et CDN (content delivery network) er et nettverk av servere spredt over mange byer som holder kopier av nettstedets filer: bilder, skript, stilark og noen ganger hele sider. Når noen besøker nettstedet ditt, får de filene fra et sted i nærheten i stedet for fra én fjern server. Det gjør at sidene lastes raskere, tar last av din egen server og hjelper nettstedet å tåle trafikktopper.
Hvorfor CDN-er betyr noe når du bygger med AI
Du setter kanskje aldri opp et CDN selv. Mange hostingplattformer legger et foran nettstedet ditt automatisk. Men du merker effektene:
- Hastighet. Sider som lastes raskere holder på besøkende, og søkemotorer tar hensyn til det. Se hvordan du gjør nettstedet ditt raskere.
- «Hvorfor vises ikke endringen min?» Etter at du har publisert en oppdatering, kan en cachet kopi av den gamle versjonen henge igjen en stund. Å vite hvorfor sparer mye forvirring.
- Personvern og korrekthet. Hvis et CDN cacher feil ting, for eksempel en side med en brukers opplysninger, kan neste besøkende se dem. Å vite hva som bør og ikke bør caches hjelper deg å stille de riktige spørsmålene.
En hverdagslig sammenligning
Tenk deg et bakeri som selger brødet sitt over hele landet fra én butikk. Hver kunde, uansett hvor langt unna, må vente på levering fra den ene butikken, og på en travel dag blir køen enorm.
Et CDN er som å ha det samme brødet i lokale nærbutikker over hele landet. Kundene henter det i nærheten, raskt, og hovedbakeriet må bare fylle på nærbutikkene nå og da. Haken: når bakeriet endrer oppskriften, selger nærbutikkene de gamle brødene til de får beskjed om å bytte ut dem, eller til lageret utløper.
Slik fungerer et CDN
- Opprinnelsen (origin). Nettstedet ditt ligger på hovedserveren eller hostingplattformen din, kalt origin.
- Edge-lokasjoner. CDN-et kjører servere mange steder, kalt edge-lokasjoner eller points of presence.
- Ruting. Når en besøkende ber om nettstedet ditt, sender DNS eller nettverksruting dem til en edge i nærheten. Se hvordan domener og DNS fungerer.
- Cache-treff. Hvis den edgen allerede har en fersk kopi av filen, sender den den med en gang.
- Cache-bom. Hvis ikke, henter edgen filen fra origin, sender den til besøkende og lagrer en kopi til neste person.
- Utløp. Hver kopi beholdes en fastsatt tid, styrt av cache-headere som serveren din sender, eller til den tømmes.
Et konkret eksempel: en portefølje med bilder
En fotografs portefølje har en forside, et galleri med 60 store bilder og et kontaktskjema. Origin står i Europa. En besøkende i Singapore åpner galleriet.
- Uten CDN: hvert bilde reiser fra Europa. Hver forespørsel tar en tur rundt om i verden, så galleriet fylles inn sakte.
- Med CDN: den første besøkende i nærheten av Singapore gjør at edgen der henter og lagrer bildene. Alle senere besøkende i regionen får dem fra nærheten, mye raskere.
Nå bytter fotografen ut forsidebildet og publiserer på nytt. Dette avgjør om besøkende ser endringen:
/index.html → kort cachetid, sjekkes ofte
/assets/index-3f9a2c.js → cachet lenge
/assets/hero-8b41d0.jpg → cachet lenge
Moderne byggeverktøy, inkludert Vite, gir filer hash-baserte navn som hero-8b41d0.jpg. Når en fil endres, endres navnet, så siden ber om en helt ny fil som ingen cache har sett før. HTML-siden selv caches bare kort, så den peker snart besøkende til de nye filene. Det er standardmetoden for å få både lang caching og ferske oppdateringer.
Kontaktskjemaet er annerledes. Innsendinger går til serveren hver gang og skal aldri caches.
Hva du bør cache, og hva du ikke bør cache
| Vanligvis cachet lenge | Vanligvis cachet kort | Ikke cache i et delt CDN |
|---|---|---|
| Bilder, fonter, videoer | HTML-sider på et offentlig nettsted | Innloggede sider, dashbord |
| JavaScript og CSS med hash-baserte navn | Offentlige API-data som endres av og til | Alt med personopplysninger |
| Nedlastbare filer som sjelden endres | Skjemainnsendinger, betalinger, alle POST-forespørsler |
Viktige begreper
| Begrep | Betydning |
|---|---|
| Origin | Hovedserveren eller hosten din, der de faktiske filene ligger. |
| Edge / PoP | En CDN-lokasjon som betjener besøkende i nærheten. |
| Cache-treff / cache-bom | Edgen hadde filen / måtte hente den fra origin. |
| TTL | Time to live: hvor lenge en cachet kopi beholdes. |
| Cache-Control-header | Instruksjonen serveren din sender om at noe kan caches, og hvor lenge. |
| Tømme / invalidere | Å be CDN-et kaste cachede kopier nå. |
| Cache busting | Å endre en fils navn eller URL når den endres, slik at caches henter den nye. |
| Latens | Forsinkelsen som skyldes avstand og nettverkshopp. |
For caching mer generelt, i nettlesere, servere og databaser, se hva caching er.
Vanlige misforståelser
- «Et CDN gjør alt raskere.» Det gjør levering av filer raskere. En treg databasespørring eller et tregt AI-kall på serveren din er fortsatt treg.
- «Et CDN erstatter hosting.» Det står foran hostingen din. Du trenger fortsatt en origin.
- «Hvis jeg oppdaterte nettstedet, ser alle det med en gang.» Gamle kopier kan henge igjen en kort stund i CDN-et og i nettlesere. Gjør en hard oppdatering for å sjekke, og bruk hash-baserte filnavn.
- «Caching er alltid trygt.» Å cache en personlig side i en delt cache er en reell personvernrisiko. Private svar bør merkes som ikke-cachebare.
- «CDN-er er bare for store selskaper.» Mange hosts inkluderer et for små nettsteder uten ekstra innsats.
Hva du bør be AI-byggeren din om
- «Finnes det et CDN foran dette nettstedet? Hvilke filer cacher det, og hvor lenge?»
- «Sørg for at bygd JavaScript, CSS og bilder har hash-baserte filnavn og lange cachetider, og at HTML har en kort.»
- «Cache aldri innloggede sider eller API-svar med personopplysninger i en delt cache.»
- «Komprimer og endre størrelse på bilder slik at galleriet lastes raskt.»
- «Jeg publiserte en oppdatering, men ser fortsatt den gamle versjonen. Er det nettleserens cache eller CDN-et?»
CDN-er og Mythex
Når du publiserer på Mythex, blir statiske frontend-løsninger distribuert som statiske sider. Dokumentasjonen nevner at CDN-cacher kan henge litt etter en oppdatering. Ser du en gammel versjon etter å ha publisert på nytt, gjør en hard oppdatering av den offentlige URL-en. Det er ingenting du må konfigurere for det. Kobler du til et eget domene med DNS på Cloudflare, ber dokumentasjonen deg sette posten til «DNS only» i stedet for proxied, slik at Mythex kan utstede HTTPS riktig. Se hvordan publisere og egne domener i dokumentasjonen, og vår guide til webhosting.
Spørsmål
Hva er et CDN, enkelt forklart?
Et CDN (content delivery network) er et nettverk av servere på mange steder som holder kopier av nettstedets filer. Besøkende får filene fra et sted i nærheten i stedet for fra hovedserveren din, slik at sidene lastes raskere og serveren din gjør mindre arbeid.
Hvorfor ser jeg fortsatt den gamle versjonen av nettstedet etter en oppdatering?
Vanligvis fordi en kopi av den gamle filen er lagret i cache, i CDN-et, i nettleseren din, eller begge deler. En hard oppdatering løser nettleser-delen. CDN-kopier utløper av seg selv eller kan tømmes. Byggeverktøy unngår mesteparten av dette ved å gi endrede filer nye navn.
Trenger jeg et CDN for et lite nettsted?
Du har ofte et uten å ha valgt det, fordi mange hostingplattformer setter et CDN foran nettsteder automatisk. Hvis ditt ikke gjør det, og besøkende er spredt over flere land, er det vanligvis verdt å legge til et.
Kan et CDN cache appens data og innloggede sider?
Det kan cache alt det har lov til å cache, og derfor må det settes opp nøye. Offentlige filer som bilder, skript og stiler er ideelle. Personlig innhold eller innloggede sider bør normalt ikke caches i et delt CDN, ellers kan én bruker se en annen brukers data.