Internet și rețele

CDN-ul: cum se încarcă rapid site-urile din toată lumea

Ce este un CDN și cum încarcă rapid site-urile: servere de margine, cache, anycast, livrarea video, protecția la atacuri și limitele unei rețele de livrare.

De Redacția LumeaTehnologiei10 min de citit
Culoar între dulapuri de servere într-o sală de date slab luminată

Un CDN (Content Delivery Network, rețea de livrare de conținut) este o rețea de servere răspândite în multe orașe și țări, care păstrează copii ale fișierelor unui site și le livrează fiecărui vizitator de la serverul cel mai apropiat de el. Dacă un site este găzduit, de exemplu, într-un centru de date din Germania, un vizitator din Cluj sau din Iași nu mai primește imaginile tocmai de acolo, ci de la un server din România sau dintr-o țară vecină. Distanța mai mică înseamnă latență mai mică, iar pagina se încarcă mai repede.

Rețelele de livrare de conținut sunt una dintre piesele invizibile care fac internetul să pară rapid. Prin ele trec o mare parte din imaginile, videoclipurile, actualizările de aplicații și fișierele site-urilor pe care le folosești zilnic. Mai jos vezi cum ajunge cererea ta la serverul potrivit, ce înseamnă cache, cum se livrează video și ce riscuri apar când multe site-uri depind de aceeași rețea.

Ce este un CDN

Un CDN este un strat intermediar între serverul principal al unui site și vizitatori, format din servere de cache amplasate aproape de utilizatori. Termenii de bază sunt:

  • Serverul de origine (origin): serverul principal, unde se află versiunea oficială a site-ului.
  • Serverele de margine (edge servers): serverele CDN-ului, plasate cât mai aproape de vizitatori, care păstrează copii ale conținutului.
  • Punctul de prezență (PoP, Point of Presence): o locație, de obicei într-un centru de date sau la un punct de schimb de trafic, unde CDN-ul are un grup de servere de margine.
  • Cache-ul: memoria temporară în care serverul de margine ține copiile fișierelor.

Când vizitezi un site care folosește un CDN, nu observi nimic special: adresa din browser este aceeași, iar pagina arată la fel. Diferența este doar în locul de unde vin fișierele.

De ce e nevoie de CDN

Problema pe care o rezolvă un CDN este fizică: semnalul are nevoie de timp ca să străbată distanțele, iar fiecare cerere a browserului face un drum dus-întors. O pagină modernă cere zeci de fișiere, așa că o întârziere de 100 de milisecunde la fiecare drum se adună rapid. Componentele acestei întârzieri sunt descrise în ghidul despre latență și lățime de bandă.

SituațieFără CDNCu CDN
Vizitator din România, site găzduit în America de Nordfiecare fișier traversează oceanulimaginile și scripturile vin de la un server apropiat
Vârf brusc de traficserverul de origine se poate blocaserverele de margine preiau majoritatea cererilor
Atac de tip DDoStraficul lovește direct origineaatacul este absorbit și filtrat de rețeaua distribuită
Consumul de trafic al originiimare, plătit de proprietarredus, majoritatea fișierelor vin din cache

Cum ajungi la cel mai apropiat server

Cererea ta ajunge la serverul de margine potrivit prin două mecanisme principale, folosite separat sau împreună: DNS-ul și anycast. Ambele sunt automate, iar tu nu trebuie să alegi nimic.

Prin DNS

Când browserul întreabă ce adresă IP are numele site-ului, serverul DNS al CDN-ului se uită de unde vine întrebarea și răspunde cu adresa unui server de margine apropiat. Doi vizitatori din țări diferite primesc astfel adrese IP diferite pentru același nume. Pașii unei interogări DNS și rolul serverelor autoritative sunt explicați în articolul despre DNS.

Prin anycast

În varianta anycast, aceeași adresă IP este anunțată simultan din zeci sau sute de locații, prin protocolul de rutare dintre rețele. Routerele de pe internet trimit fiecare cerere spre locația cea mai apropiată din punct de vedere al rutării. Dacă o locație cade, anunțul ei dispare, iar traficul se îndreaptă automat spre următoarea. Detalii despre adresele IP și rutare găsești în Adresa IP: ce este și diferența dintre IPv4 și IPv6 și în ghidul general despre internet.

Cache-ul: inima unui CDN

Cache-ul este memoria în care serverul de margine păstrează copii ale fișierelor, pentru a le servi direct, fără să le mai ceară de la origine. Ciclul arată astfel:

  1. Primul vizitator dintr-o zonă cere o imagine. Serverul de margine nu o are, deci este o ratare (cache miss).
  2. Serverul de margine cere imaginea de la origine, o trimite vizitatorului și păstrează o copie.
  3. Următorii vizitatori din zonă primesc imaginea direct din cache, ceea ce se numește reușită (cache hit).
  4. După o perioadă stabilită de proprietarul site-ului, copia expiră, iar serverul de margine verifică dacă originea are o versiune nouă.

Proporția cererilor servite din cache, numită rata de reușită, este principalul indicator al eficienței unui CDN. Un site bine configurat servește din cache marea majoritate a fișierelor statice.

Cât timp se păstrează o copie

Durata este controlată de antetele HTTP trimise de serverul de origine, mai ales de antetul Cache-Control, care spune cât timp poate fi reținut un fișier și de cine. Când un fișier se schimbă înainte de expirare, proprietarul poate cere golirea lui din cache (purge) sau poate folosi o tehnică mai elegantă: schimbă numele fișierului la fiecare versiune, de exemplu adăugând un cod la final, astfel încât fișierul nou este, practic, alt fișier.

Sfat: Dacă administrezi un site și o modificare nu apare imediat pentru vizitatori, verifică întâi cache-ul CDN-ului și al browserului. Deschide pagina cu un parametru unic adăugat la adresă sau într-o fereastră privată, apoi golește din CDN doar fișierele modificate, nu tot cache-ul.

Ce se poate și ce nu se poate păstra în cache

Tip de conținutExempleSe păstrează în cache?
Static, la fel pentru toțiimagini, fonturi, fișiere de stil și scripturida, de obicei mult timp
Pagini publice care se schimbă rararticole, pagini de prezentareda, pentru perioade scurte sau medii
Fișiere mariactualizări de aplicații, arhive de descărcatda, este unul dintre rolurile principale
Conținut personalizatcoșul de cumpărături, contul tău, mesajelenu, trece prin CDN direct spre origine
Răspunsuri de API cu date în timp realcursuri, stocuri, pozițiirar, cel mult câteva secunde

Chiar și pentru conținutul care nu se poate păstra în cache, CDN-ul ajută: conexiunea criptată se stabilește cu serverul de margine apropiat, iar acesta folosește legături optimizate și deja deschise spre origine.

Mână care atinge un smartphone pe fundalul unei hărți a lumii din puncte

Cum livrează un CDN video

Videoclipurile sunt cea mai mare parte din traficul de internet, iar livrarea lor eficientă depinde aproape în totalitate de rețelele de livrare de conținut. Un videoclip nu este trimis ca un singur fișier mare, ci este tăiat în segmente scurte, de câteva secunde, fiecare disponibil în mai multe calități.

Playerul din browser sau din aplicație cere segmentele unul după altul și alege calitatea fiecăruia în funcție de viteza măsurată în acel moment. Tehnica se numește streaming adaptiv: dacă rețeaua încetinește, următorul segment vine la o calitate mai mică, în loc ca imaginea să se oprească. Segmentele populare stau în cache pe serverele de margine, așa că milioane de oameni pot urmări același conținut fără ca serverul de origine să fie copleșit. Fișierele video sunt, la rândul lor, puternic comprimate, după principiile explicate în Compresia datelor: cum se micșorează fișierele digitale.

Servere chiar în rețeaua furnizorului

Marile servicii de video și de conținut instalează adesea servere de cache direct în rețelele furnizorilor de internet. Pentru tine, asta înseamnă că un film popular vine de la câțiva kilometri distanță, din rețeaua furnizorului tău, fără să mai traverseze legăturile internaționale.

CDN-ul și securitatea site-urilor

Pe lângă viteză, multe rețele de livrare de conținut oferă protecție, pentru că stau în fața serverului de origine și văd tot traficul înainte ca acesta să ajungă la el. Funcțiile uzuale sunt:

  • Absorbirea atacurilor DDoS: un atac distribuit de blocare a serviciului (DDoS, Distributed Denial of Service) trimite un volum uriaș de cereri ca să copleșească un server. Capacitatea totală a unui CDN, împărțită pe multe locații, poate absorbi și filtra astfel de atacuri.
  • Firewall pentru aplicații web (WAF): reguli care blochează cererile tipice unor atacuri cunoscute.
  • Filtrarea roboților: deosebirea traficului uman de cel automat abuziv.
  • Ascunderea originii: adresa serverului principal nu mai este publică.
  • Gestionarea certificatelor: CDN-ul stabilește conexiunea HTTPS cu vizitatorul și reînnoiește automat certificatele.

Ultimul punct are o consecință de reținut: pentru a putea păstra în cache și filtra conținutul, CDN-ul decriptează traficul pe serverele lui, apoi îl criptează din nou spre origine. Lacătul din browser îți confirmă o conexiune sigură până la CDN, care acționează în numele site-ului. Ce garantează, în general, lacătul este explicat în HTTPS și certificatele: ce înseamnă lacătul din browser, iar imaginea mai largă a protecției online, în Securitatea online: ghid complet pentru utilizatori obișnuiți.

Limitele și riscurile unui CDN

Un CDN nu este o soluție fără costuri sau fără riscuri, iar principala problemă este concentrarea. Când o mare parte a webului trece prin câțiva furnizori mari, o eroare de configurare la unul dintre ei poate face inaccesibile, pentru minute sau ore, mii de site-uri fără legătură între ele. Astfel de incidente au avut loc de mai multe ori și arată cât de centralizată a devenit, în practică, o rețea concepută descentralizat.

Alte limite și precauții:

  • Conținut învechit: o configurare greșită a cache-ului poate servi o versiune veche a unei pagini sau, mai grav, poate servi unui vizitator date personale ale altuia, dacă paginile personalizate sunt păstrate din greșeală în cache.
  • Vizibilitatea datelor: CDN-ul vede traficul decriptat, deci alegerea furnizorului și locul serverelor contează pentru protecția datelor; tema este discutată în Suveranitatea datelor: de ce contează unde sunt stocate.
  • Dependența: dacă site-ul se bazează pe funcții avansate ale unui anumit CDN, mutarea la alt furnizor devine dificilă.
  • Nu repară un server lent: paginile dinamice care se generează greu la origine rămân lente pentru prima cerere.

Atenție: Dacă administrezi un magazin online sau un site cu conturi de utilizator, verifică explicit ca paginile de cont, coș și plată să fie excluse din cache. Testează cu două conturi diferite, din două browsere, înainte de a activa reguli noi de cache.

CDN și edge computing: înrudite, dar diferite

Un CDN clasic stochează și livrează conținut, pe când edge computing înseamnă rularea efectivă de programe pe servere aflate aproape de utilizator. Multe rețele de livrare de conținut au evoluat în această direcție și permit rularea unor bucăți de cod direct pe serverele de margine, de exemplu pentru redirecționări, personalizare simplă sau verificări de securitate, fără drumul până la origine. Diferența și aplicațiile practice sunt explicate în Edge computing: procesarea datelor aproape de utilizator.

Ideile principale despre CDN

Un CDN aduce conținutul aproape de vizitatori printr-o rețea de servere de margine, care păstrează copii ale fișierelor în cache și le livrează fără drumul lung până la serverul de origine. Vizitatorul ajunge la serverul cel mai apropiat prin DNS sau prin anycast, iar proprietarul site-ului controlează prin antete cât timp se păstrează fiecare fișier. Rezultatul este o încărcare mai rapidă, un server de origine degrevat și o protecție mai bună la atacuri, cu prețul unei dependențe de un furnizor și al unei centralizări care poate amplifica incidentele.

De reținut:

  • serverul de origine are versiunea oficială, serverele de margine au copii;
  • DNS-ul sau anycast te trimit automat la cel mai apropiat punct de prezență;
  • fișierele statice se păstrează în cache, paginile personale nu;
  • video-ul se livrează în segmente scurte, la calitate adaptată vitezei tale;
  • un CDN protejează la atacuri DDoS, dar o pană a lui afectează multe site-uri deodată.

Întrebări frecvente

Ce înseamnă CDN?

CDN înseamnă Content Delivery Network, adică rețea de livrare de conținut. Este o rețea de servere distribuite geografic care livrează fișierele unui site de la locația cea mai apropiată de vizitator.

Un site mic are nevoie de CDN?

Nu neapărat, mai ales dacă vizitatorii sunt din aceeași țară cu serverul. Un CDN devine util când ai vizitatori din mai multe regiuni, multe imagini sau vârfuri de trafic.

Cum îmi dau seama dacă un site folosește CDN?

Antetele răspunsurilor HTTP, vizibile în instrumentele pentru dezvoltatori ale browserului, conțin adesea informații despre cache și despre serverul care a răspuns. Și adresa IP primită pentru numele site-ului poate aparține unui furnizor de CDN.

Un CDN îmi vede datele?

Pentru site-ul care îl folosește, CDN-ul procesează traficul, inclusiv decriptat, ca să-l poată păstra în cache și filtra. Este un împuternicit al site-ului, iar responsabilitatea alegerii lui revine proprietarului site-ului.

De ce unele site-uri cad toate odată?

Pentru că depind de același furnizor de CDN sau de cloud. O eroare la acel furnizor afectează simultan toate site-urile care trec prin el, chiar dacă nu au altă legătură între ele.

↑