Aceeași adresă CDN nu înseamnă același cache în browser
Partiționarea cache-ului slăbește argumentul reutilizării între site-uri. Comparați distribuția CDN, revenirile pe site și responsabilitatea pentru fișiere.
Încărcarea unei biblioteci populare de pe un CDN public are nevoie de o justificare mai bună decât speranța că alt site a pus-o deja în cache-ul browserului vizitatorului. Partiționarea făcută pentru protejarea vieții private slăbește această presupunere despre reutilizarea între site-uri. Alegeți găzduirea fișierelor după traseul cererilor pe care le fac vizitatorii, serviciul de distribuție primit și responsabilitatea care vă revine.
Această retrospectivă din noiembrie 2026 revine la săptămâna de 8 ianuarie 2025. Explicația publicată de Addy Osmani pe 7 ianuarie a readus în discuție o schimbare mai veche a browserelor. Ianuarie a fost un moment util pentru reevaluarea unui argument cunoscut despre optimizare, nu data la care browserele au încetat brusc să reutilizeze resurse între site-uri.
Precizați ce cache ar trebui să ajute
Argumentul vechi era atrăgător. Dacă site-uri fără legătură cereau biblioteca de la exact aceeași adresă, vizitatorul putea sosi cu fișierul deja stocat local. Popularitatea bibliotecii părea astfel un avantaj de performanță al propriului site. Avantajul depindea însă de permisiunea browserului de a reutiliza o intrare între acele contexte.
Descrierea implementării Chrome prezintă partiționarea începând cu Chrome 86 și introducerea treptată până spre sfârșitul lui 2020. Cheia cache-ului include adresa resursei și o cheie de izolare care implică site-ul principal și site-ul cadrului curent. Descrierea este mai precisă decât o formulă universală potrivit căreia orice browser ar folosi doar adresa și originea paginii principale. Site-ul, originea și contextul cadrului nu sunt termeni interschimbabili.
Scopul privind viața privată este împiedicarea unui site să afle despre activitatea de pe altul prin starea comună a cache-ului. Pentru alegerea găzduirii, consecința este mai restrânsă: aceeași adresă publică nu demonstrează că un răspuns păstrat din contextul altui site principal va fi reutilizat. Proiectarea nu ar trebui să includă acea reutilizare presupusă ca economie garantată.
Rămân alte două forme utile de reutilizare. Vizitatorul poate refolosi fișiere într-un context compatibil al aceluiași site, potrivit regulilor browserului. Separat, un server CDN apropiat de vizitatori poate păstra fișierele și le poate livra fără să contacteze de fiecare dată serverul de origine. Partiționarea cache-ului din browser nu elimină cache-ul furnizorului CDN. Totuși, o cerere care ajunge la un server apropiat diferă de absența completă a unei cereri de rețea.
Comparați prima vizită reală
Să luăm o aplicație ilustrativă pentru firme, care încarcă un font și o bibliotecă JavaScript mică. O variantă distribuie ambele fișiere prin infrastructura aplicației. Alta folosește un furnizor public extern. Comparați prima vizită fără să presupuneți că vreun fișier există deja în partiția relevantă a browserului. Astfel devin vizibile cererile de care depinde efectiv aplicația.
Un domeniu separat poate necesita operații suplimentare de conectare, în funcție de conexiune și protocol. Fontul poate depinde și de cererea unei foi de stil înainte ca propria sa adresă să fie cunoscută. Sunt motive pentru examinarea traseului, nu dovada că găzduirea proprie câștigă mereu. Conexiunile existente, dimensiunile fișierelor și organizarea distribuției pot schimba rezultatul.
Comparația ar trebui să includă și revenirea în aplicație. Adresele stabile și instrucțiunile potrivite de cache pot permite reutilizarea acolo, chiar dacă reutilizarea între site-uri nu este disponibilă. Dacă fiecare lansare schimbă inutil identitatea unui fișier, simpla schimbare a furnizorului nu rezolvă problema. Versionarea și comportamentul la actualizare rămân decizii ale aplicației.
Responsabilitatea face parte din decizia de performanță
Găzduirea proprie îi permite responsabilului aplicației să decidă direct ce versiune este lansată și când se schimbă. Creează și obligații: obținerea legală a fișierelor, păstrarea informațiilor relevante despre licență și actualizarea dependențelor. Mutarea unui fișier în depozitul de cod nu elimină obligațiile de securitate sau de licențiere.
Un furnizor administrat mută limita responsabilității. Echipa ar trebui să înțeleagă fixarea versiunilor, dependențele de disponibilitate și informațiile despre cereri care ajung la terț. Aceste întrebări privesc furnizorul și proiectul concret. Nu demonstrează că toate CDN-urile colectează aceleași date sau oferă aceleași garanții.
Pentru proprietarul firmei, consecința utilă este o explicație mai clară a lucrurilor care pot întârzia pagina și a persoanei care le poate remedia. O dependență greu de înlocuit poate merita mai multă atenție decât o diferență mică de transfer. Articolul nu afirmă o reducere măsurată a latenței, o creștere a conversiilor sau o economie de găzduire pentru vreuna dintre variante.
Un CDN poate rămâne alegerea potrivită
Cea mai puternică obiecție privește distribuția geografică și optimizarea administrată. Furnizorul poate oferi distribuție, compresie sau variante de fișiere pe care echipa ar trebui altfel să le administreze. Avantajele pot justifica un CDN chiar dacă fiecare site principal nou începe fără o intrare reutilizabilă pentru acea resursă în cache-ul browserului.
Comparați avantajele cu alternativa completă. Un fișier găzduit de aplicație poate fi distribuit chiar prin CDN-ul site-ului, deci alegerea nu opune mereu un server apropiat unuia îndepărtat. La fel, refacerea mecanismului util de optimizare al unui furnizor poate însemna muncă inutilă. Decizia ar trebui să numească serviciul cumpărat, fără să preia un argument învechit despre cache comun.
Descrierea istorică a implementării susține comportamentul browserului pe care îl prezintă. Nu este un tabel permanent de compatibilitate pentru toate browserele din noiembrie 2026. Verificați din nou browserele relevante înainte să estimați impactul într-un proiect. Discuția din ianuarie nu descrie nici cache-urile de date ale aplicațiilor Next.js, care rezolvă altă problemă, la alt nivel.
În dezvoltarea software la comandă, notați traseul primei vizite, reutilizarea așteptată în același site și responsabilitățile de distribuție înainte să alegeți găzduirea fișierelor. Păstrați un CDN public când serviciul oferit îi justifică locul. Renunțați la argumentul reutilizării între site-uri dacă nu aveți dovezi că browserul o permite în contextul relevant.
Paul