Czym jest CDN? Sieci dostarczania treści wyjaśnione prosto
CDN (content delivery network) to sieć serwerów rozmieszczonych w wielu miastach, które przechowują kopie plików Twojej strony — obrazów, skryptów, arkuszy stylów, a czasem całych stron. Gdy ktoś odwiedza Twoją stronę, dostaje pliki z lokalizacji blisko siebie, a nie z odległego serwera. Dzięki temu strony ładują się szybciej, mniej obciążają Twój serwer i strona lepiej radzi sobie z nagłymi skokami ruchu.
Dlaczego CDN ma znaczenie, gdy budujesz z AI
Możesz nigdy nie konfigurować CDN samodzielnie — wiele platform hostingowych stawia go przed Twoją stroną automatycznie. Ale jego skutki odczujesz:
- Szybkość. Szybciej ładujące się strony zatrzymują odwiedzających i są jednym z czynników, które biorą pod uwagę wyszukiwarki. Zobacz jak przyspieszyć swoją stronę.
- „Dlaczego moja zmiana się nie pokazuje?” Po opublikowaniu aktualizacji kopia starej wersji w cache może jeszcze przez chwilę istnieć. Wiedza o tym oszczędza sporo zamieszania.
- Prywatność i poprawność. Jeśli CDN zapisze coś, czego nie powinien — stronę z danymi jednego użytkownika — kolejny odwiedzający może to zobaczyć. Wiedza, co wolno, a czego nie wolno zapisywać w cache, pomaga zadawać właściwe pytania.
Codzienna analogia
Wyobraź sobie piekarnię, która sprzedaje chleb w całym kraju z jednego sklepu. Każdy klient, choćby mieszkał bardzo daleko, musi czekać na dostawę z tego jednego miejsca — a w gorący dzień kolejka jest ogromna.
CDN to jak wystawienie tego samego chleba w lokalnych sklepikach na całym kraju. Klienci kupują go w pobliżu, szybko, a główna piekarnia tylko od czasu do czasu uzupełnia towar w sklepikach. Haczyk: gdy piekarnia zmieni przepis, sklepiki nadal sprzedają stare bochenki, aż dostaną sygnał, żeby je wymienić, albo aż stary towar się przeterminuje.
Jak działa CDN
- Źródło (origin). Twoja strona leży na głównym serwerze lub w platformie hostingowej — to jest origin.
- Lokalizacje brzegowe. CDN ma serwery w wielu miejscach, zwane edge locations albo points of presence.
- Kierowanie ruchu. Gdy odwiedzający prosi o Twoją stronę, DNS lub routing sieciowy kieruje go do najbliższego serwera brzegowego. Zobacz jak działają domeny i DNS.
- Trafienie w cache (cache hit). Jeśli ten serwer ma świeżą kopię pliku, od razu ją wysyła.
- Chybienie cache (cache miss). Jeśli nie ma, pobiera plik z Twojego źródła, wysyła go odwiedzającemu i zachowuje kopię dla następnej osoby.
- Wygasanie. Każda kopia jest przechowywana przez określony czas, sterowany nagłówkami cache wysyłanymi przez Twój serwer, albo do momentu wyczyszczenia.
Przykład krok po kroku: strona fotografa z galerią
Portfolio fotografa ma stronę główną, galerię z 60 dużymi zdjęciami i formularz kontaktowy. Źródło jest w Europie. Odwiedzający z Singapuru otwiera galerię.
- Bez CDN: każde zdjęcie przybywa z Europy. Każde żądanie pokonuje całą drogę przez świat, więc galeria wypełnia się powoli.
- Z CDN: pierwszy odwiedzający w pobliżu Singapuru sprawia, że serwer brzegowy tam pobiera i zapisuje zdjęcia. Każdy kolejny odwiedzający z tego regionu dostaje je z bliska, dużo szybciej.
Teraz fotograf zamienia zdjęcie główne na stronie i publikuje ponownie. O tym, czy odwiedzający je zobaczą, decydują poniższe elementy:
/index.html → krótki czas cache, sprawdzany często
/assets/index-3f9a2c.js → cache przez długi czas
/assets/hero-8b41d0.jpg → cache przez długi czas
Nowoczesne narzędzia budujące, w tym Vite, nadają plikom nazwy z hashem, na przykład hero-8b41d0.jpg. Gdy plik się zmienia, zmienia się jego nazwa, więc strona prosi o zupełnie nowy plik, którego żaden cache jeszcze nie widział. Sama strona HTML jest w cache tylko krótko, więc szybko kieruje odwiedzających do nowych plików. To standardowy sposób, by mieć jednocześnie długie cache'owanie i świeże aktualizacje.
Formularz kontaktowy to inna sprawa. Jego zgłoszenia trafiają do serwera za każdym razem i nigdy nie powinny być zapisywane w cache.
Co cache'ować, a czego nie
| Zwykle cache'uj (długo) | Zwykle cache'uj krótko | Nie cache'uj we wspólnym CDN |
|---|---|---|
| Obrazy, czcionki, wideo | Strony HTML publicznej witryny | Strony dla zalogowanych, panele |
| JavaScript i CSS z nazwami z hashem | Publiczne dane API, które zmieniają się od czasu do czasu | Wszystko z danymi osobowymi |
| Pliki do pobrania, które rzadko się zmieniają | Zgłoszenia formularzy, płatności, każde żądanie POST |
Kluczowe pojęcia
| Pojęcie | Znaczenie |
|---|---|
| Origin | Twój główny serwer lub hosting, na którym leżą prawdziwe pliki. |
| Edge / PoP | Lokalizacja CDN, która obsługuje odwiedzających w pobliżu. |
| Cache hit / miss | Edge miał plik / musiał pobrać go z origin. |
| TTL | Time to live — jak długo przechowywana jest kopia w cache. |
| Nagłówek Cache-Control | Instrukcja wysyłana przez Twój serwer, mówiąca, czy i jak długo coś może być w cache. |
| Purge / invalidate | Polecenie dla CDN, by natychmiast wyrzucił kopie z cache. |
| Cache busting | Zmiana nazwy lub URL pliku, gdy się zmienia, żeby cache pobrał nową wersję. |
| Latency | Opóźnienie wynikające z odległości i liczby przeskoków w sieci. |
O cache'owaniu w ogólności — w przeglądarkach, serwerach i bazach danych — przeczytasz w czym jest cache.
Częste nieporozumienia
- „CDN sprawia, że wszystko jest szybsze”. Przyspiesza dostarczanie plików. Wolne zapytanie do bazy danych albo wolne wywołanie AI na serwerze nadal będzie wolne.
- „CDN zastępuje hosting”. Stoi przed Twoim hostingiem. Nadal potrzebujesz źródła.
- „Jeśli zaktualizowałem stronę, wszyscy widzą ją od razu”. Stare kopie mogą chwilę pozostać w CDN i w przeglądarkach. Sprawdź, robiąc twarde odświeżenie, i używaj nazw plików z hashem.
- „Cache jest zawsze bezpieczny”. Zapisanie spersonalizowanej strony we wspólnym cache to realne ryzyko dla prywatności. Odpowiedzi prywatne powinny być oznaczone jako niemożliwe do zapisania w cache.
- „CDN jest tylko dla dużych firm”. Wiele hostingów dołącza go do małych stron bez dodatkowego wysiłku.
O co zapytać kreatora AI
- „Czy przed tą stroną jest CDN? Które pliki cache'uje i jak długo?”
- „Upewnij się, że zbudowane pliki JavaScript, CSS i obrazy mają nazwy z hashem i długi czas cache, a HTML ma krótki.”
- „Nigdy nie cache'uj stron dla zalogowanych ani odpowiedzi API z danymi osobowymi we wspólnym cache.”
- „Kompresuj i zmniejszaj obrazy, żeby galeria ładowała się szybko.”
- „Opublikowałem aktualizację, ale nadal widzę starą wersję — to cache przeglądarki czy CDN?”
CDN a Mythex
Kiedy publikujesz w Mythex, statyczne frontendy są wdrażane jako strony statyczne, a dokumentacja zaznacza, że cache CDN może przez chwilę opóźniać aktualizacje: jeśli po ponownym opublikowaniu nadal widzisz starą wersję, zrób twarde odświeżenie publicznego adresu URL. Nie trzeba tego konfigurować. Jeśli podłączysz własną domenę, której DNS jest w Cloudflare, dokumentacja prosi o ustawienie rekordu na „DNS only” zamiast „proxied”, aby Mythex mógł poprawnie wystawić HTTPS. Zobacz jak publikować i domeny własne w dokumentacji oraz nasz przewodnik po hostingu stron.
Pytania
Czym jest CDN w prostych słowach?
CDN (content delivery network) to sieć serwerów w wielu lokalizacjach, które przechowują kopie plików Twojej strony. Odwiedzający dostają pliki z lokalizacji blisko siebie, zamiast z głównego serwera, więc strony ładują się szybciej, a Twój serwer ma mniej pracy.
Dlaczego po aktualizacji strony nadal widzę starą wersję?
Zwykle dlatego, że kopia starego pliku jest zapisana w pamięci podręcznej (cache) — w CDN, w przeglądarce lub w obu miejscach. Twarde odświeżenie naprawia stronę po stronie przeglądarki; kopie w CDN wygasają same albo można je wyczyścić. Narzędzia budujące unikają większości tego problemu, nadając zmienionym plikom nowe nazwy.
Czy mała strona potrzebuje CDN?
Często już go masz, nawet nie wybierając, bo wiele platform hostingowych umieszcza CDN przed stronami automatycznie. Jeśli Twojego nie ma, a odwiedzający są rozsiani po różnych krajach, dodanie go zwykle się opłaca.
Czy CDN może zapisać dane mojej aplikacji i strony dla zalogowanych użytkowników?
Może zapisać wszystko, na co mu pozwolisz, dlatego trzeba go skonfigurować ostrożnie. Publiczne pliki, takie jak obrazy, skrypty i style, są idealne. Treści osobiste lub dostępne po zalogowaniu zwykle nie powinny być zapisywane we wspólnym CDN, bo jeden użytkownik mógłby zobaczyć dane innego.