Šta je CDN? Mreže za isporuku sadržaja jednostavno objašnjene
CDN (content delivery network) je mreža servera raspoređenih u mnogim gradovima koji čuvaju kopije fajlova vaše web stranice — slika, skripti, stilova, ponekad i cijelih stranica. Kada neko posjeti vaš sajt, služi mu se s lokacije blizu njega, umjesto s jednog udaljenog servera. Stranice se time učitavaju brže, s vašeg servera se skida opterećenje, a sajt lakše podnosi nagle skokove saobraćaja.
Zašto su CDN-ovi važni kada gradite uz AI
Možda nikada sami nećete postaviti CDN — mnoge platforme za hosting automatski stavljaju jedan ispred vašeg sajta. Ali osjetit ćete njegove efekte:
- Brzina. Brže učitavanje stranica zadržava posjetioce i jedan je od faktora koje pretraživači uzimaju u obzir. Pogledajte kako ubrzati web stranicu.
- „Zašto se moja promjena ne vidi?” Nakon što objavite ažuriranje, keširana kopija stare verzije može se zadržati kratko vrijeme. Kada znate zašto, štedite mnogo zabune.
- Privatnost i ispravnost. Ako CDN kešira pogrešnu stvar — stranicu s podacima jednog korisnika — sljedeći posjetilac je može vidjeti. Znanje o tome šta treba, a šta ne treba keširati, pomaže da postavite prava pitanja.
Svakodnevna analogija
Zamislite pekaru koja prodaje hljeb širom države iz jedne prodavnice. Svaki kupac, ma koliko daleko bio, mora čekati dostavu iz te jedine prodavnice — a na prometan dan red je ogroman.
CDN je kao da se isti hljeb nalazi u lokalnim prodavnicama širom zemlje. Kupci ga brzo kupe u blizini, a glavna pekara treba povremeno da dopuni te prodavnice. Ulov: kada pekara promijeni recept, lokalne prodavnice i dalje prodaju stare hljebove dok ih ne zamijene ili dok stare zalihe ne isteknu.
Kako CDN radi
- Vaš origin. Vaš sajt živi na glavnom serveru ili hosting platformi — to se zove origin.
- Edge lokacije. CDN ima servere na mnogo mjesta, zvane edge lokacije ili points of presence.
- Usmjeravanje. Kada posjetilac zatraži vaš sajt, DNS ili mrežno usmjeravanje ga šalje na najbliži edge. Pogledajte kako rade domene i DNS.
- Cache hit. Ako taj edge već ima svježu kopiju fajla, odmah je šalje.
- Cache miss. Ako nema, edge ga preuzima s vašeg origin-a, šalje posjetiocu i čuva kopiju za sljedeću osobu.
- Isteklo vrijeme. Svaka kopija se čuva određeno vrijeme, prema cache header-ima koje šalje vaš server, ili dok se ne obriše.
Praktičan primjer: portfolio sajt s fotografijama
Portfolio fotografa ima početnu stranicu, galeriju sa 60 velikih slika i kontakt formu. Origin je u Evropi. Posjetilac iz Singapura otvara galeriju.
- Bez CDN-a: svaka slika putuje iz Evrope. Svaki zahtjev prelazi cijeli svijet, pa se galerija sporo puni.
- Sa CDN-om: prvi posjetilac blizu Singapura uzrokuje da edge tamo preuzme i sačuva slike. Svi kasniji posjetioci iz tog regiona dobijaju ih iz blizine, mnogo brže.
Sada fotograf zamijeni glavnu sliku na početnoj stranici i ponovo objavi. Evo šta odlučuje da li će je posjetioci vidjeti:
/index.html → kratko vrijeme keširanja, provjerava se često
/assets/index-3f9a2c.js → keširano dugo
/assets/hero-8b41d0.jpg → keširano dugo
Savremeni alati za izgradnju, uključujući Vite, daju fajlovima heširana imena poput hero-8b41d0.jpg. Kada se fajl promijeni, promijeni se i njegovo ime, pa stranica traži potpuno novi fajl koji nijedan keš još nije vidio. HTML stranica sama se kešira samo kratko, pa brzo upućuje posjetioce na nove fajlove. To je standardan način da dobijete i dugo keširanje i svježa ažuriranja.
Kontakt forma je drugačija. Njeni podaci uvijek idu na server i ne bi se nikada smjeli keširati.
Šta keširati, a šta ne
| Obično keširati (dugo) | Obično keširati kratko | Ne keširati u zajedničkom CDN-u |
|---|---|---|
| Slike, fontovi, videi | HTML stranice javnog sajta | Stranice prijavljenih korisnika, kontrolne table |
| JavaScript i CSS s heširanim imenima | Javni API podaci koji se povremeno mijenjaju | Sve s ličnim podacima |
| Fajlovi za preuzimanje koji se rijetko mijenjaju | Slanja forme, plaćanja, svaki POST zahtjev |
Ključni pojmovi
| Pojam | Značenje |
|---|---|
| Origin | Vaš glavni server ili host, gdje stvarno žive fajlovi. |
| Edge / PoP | Lokacija CDN-a koja služi posjetiocima iz blizine. |
| Cache hit / miss | Edge je imao fajl / morao ga je preuzeti s origin-a. |
| TTL | Time to live — koliko dugo se kopija čuva. |
| Cache-Control header | Instrukcija koju server šalje, koja kaže da li i koliko dugo nešto smije biti keširano. |
| Purge / invalidate | Naređivanje CDN-u da odmah baci keširane kopije. |
| Cache busting | Promjena imena ili URL-a fajla kada se promijeni, da keševi povuku novi. |
| Latencija | Kašnjenje uzrokovano udaljenošću i mrežnim skokovima. |
Za keširanje općenito — u pregledničima, serverima i bazama — pogledajte šta je keširanje.
Česta pogrešna shvatanja
- „CDN sve čini bržim.” Ubrzava isporuku fajlova. Spor upit u bazi ili spor poziv AI-ju na vašem serveru ostaje spor.
- „CDN zamjenjuje hosting.” Stoji ispred vašeg hostinga. I dalje vam treba origin.
- „Ako sam ažurirao sajt, svi ga odmah vide.” Stare kopije se mogu zadržati kratko u CDN-u i u preglednicima. Za provjeru tvrdo osvježite, a koristite heširana imena fajlova.
- „Keširanje je uvijek sigurno.” Keširanje personalizovane stranice u zajedničkom kešu je pravi rizik za privatnost. Privatni odgovori treba da budu označeni kao nekeširajući.
- „CDN-ovi su samo za velike kompanije.” Mnogi hostovi uključuju jedan za male sajtove bez ikakvog dodatnog truda.
Šta tražiti od AI graditelja
- „Da li je ispred ovog sajta CDN? Koje fajlove kešira i koliko dugo?”
- „Pobrini se da izgrađeni JavaScript, CSS i slike imaju heširana imena i dugo vrijeme keširanja, a HTML kratko.”
- „Nikada ne keširaj stranice prijavljenih korisnika ili API odgovore s ličnim podacima u zajedničkom kešu.”
- „Kompresuj i smanji slike da se galerija brzo učitava.”
- „Objavio sam ažuriranje, ali još vidim staru verziju — da li je to keš preglednika ili CDN?”
CDN-ovi i Mythex
Kada objavljujete na Mythex-u, statički frontend-ovi se deployaju kao statički sajtovi, a u dokumentaciji se navodi da keševi CDN-a mogu kratko kasniti za ažuriranjem: ako i nakon ponovne objave vidite staru verziju, tvrdo osvježite javni URL. Tu ništa ne treba podešavati. Ako povežete vlastitu domenu čiji je DNS na Cloudflare-u, dokumentacija traži da zapis bude postavljen na „DNS only”, a ne „proxied”, kako bi Mythex ispravno izdao HTTPS. Pogledajte kako objaviti i prilagođene domene u dokumentaciji, a za pregled je tu i naš vodič o web hostingu.
Pitanja
Šta je CDN jednostavnim riječima?
CDN (content delivery network) je mreža servera na mnogo lokacija koji čuvaju kopije fajlova vaše web stranice. Posjetioci se služe s lokacije blizu njih umjesto s glavnog servera, pa se stranice učitavaju brže, a vaš server radi manje.
Zašto još vidim staru verziju sajta nakon ažuriranja?
Obično zato što je kopija stare datoteke keširana — u CDN-u, u pregledniku ili u oba. Tvrdo osvježavanje rješava stranu preglednika; kopije u CDN-u istječu same ili se mogu obrisati. Alati za izgradnju većinu toga izbjegavaju tako što promijenjenim fajlovima daju nova imena.
Treba li mi CDN za mali sajt?
Često ga imate a da ga niste birali, jer mnoge platforme za hosting automatski stavljaju CDN ispred sajtova. Ako vaša nema CDN, a posjetioci su raspoređeni po državama, dodavanje obično vrijedi truda.
Može li CDN keširati podatke moje aplikacije i stranice za prijavljene korisnike?
Može keširati sve što mu se dozvoli, zato se mora pažljivo podesiti. Javni fajlovi poput slika, skripti i stilova su idealni. Lični sadržaj ili stranice prijavljenih korisnika obično ne treba keširati u zajedničkom CDN-u, jer bi jedan korisnik mogao vidjeti podatke drugog.