STATUS IS UPWIKI DI OTTIMIZZAZIONE DEL SITO
20Accelera
Prestazioni e distribuzione / Accelera

Guida al caching del browser per proprietari di siti

Definisci regole HTTP chiare in modo che le visite ripetute evitino download inutili senza intrappolare i visitatori su pagine obsolete o su contenuti personalizzati non sicuri.

Guida al caching del browser per proprietari di siti — GUIDA VISIVA
LEGGI
7 minuti
FONTI
6
RIVALIDA
2027-03-27
rivisto
Web performance and release engineering reviewer
LA RISPOSTA BREVE

Inizia dalla decisione.

Usa una regola di caching diversa per ogni tipo di URL. Assegna una lunga durata di freschezza ai file il cui contenuto non cambia mai a quell'URL, come JavaScript, CSS, font e immagini con nome fingerprinted. Assegna a HTML e ad altre risposte non versionate una policy che richieda la validazione prima di essere riutilizzate quando la freschezza è importante. Pubblica un nuovo URL per un asset ogni volta che l'asset cambia; una lunga durata di cache non può essere annullata in modo affidabile per copie ancora fresche.

Inizia con header Cache-Control espliciti, quindi verifica gli header e il comportamento del browser in un ambiente di staging. Abbina risposte che favoriscono la validazione con ETag e, dove disponibile, Last-Modified. Tratta separatamente le risposte personalizzate, account, checkout e sensibili rispetto alle pagine pubbliche. SIU usa questo lavoro come ottimizzazione proattiva dell'uptime: riduce il lavoro origin evitabile e previene difetti legati alla cache prima che compromettono un sito utilizzabile.

GUIDA VISIVA

Vedi il lavoro come un sistema.

Usa questa mappa per collegare le decisioni dell'articolo prima di agire su singole tattiche.

SIUAccelera
01Mappa la policy alla risorsa, non al server
02Usa i termini di Cache-Control con precisione
03Versiona gli asset immutabili prima di assegnare una lunga durata
04Rendi l'HTML aggiornato tramite validazione, non tramite caching prolungato
01

Mappa la policy alla risorsa, non al server

Fai l'inventario di URL rappresentativi prima di modificare gli header: una home page, una pagina di contenuto, la shell dell'applicazione, CSS, JavaScript, immagini, font, API, login, account, checkout e download. Per ciascuno, registra se la risposta è pubblica o personalizzata, se il suo URL cambia quando cambiano i byte e quanto rapidamente una correzione deve raggiungere i visitatori.

Costruisci una matrice di policy da quell'inventario. Un asset pubblico indirizzato dal contenuto necessita di una regola diversa dall'HTML a un indirizzo stabile. Risposte senza Cache-Control possono comunque essere memorizzate in modo euristico, quindi regole esplicite sono più facili da testare.

Freshness lifetime

Il periodo durante il quale una risposta memorizzata può essere riutilizzata; max-age lo dà in secondi.

02

Usa i termini di Cache-Control con precisione

Cache-Control indica a browser e cache condivise come memorizzare e riutilizzare una risposta. max-age=N permette il riuso mentre la risposta è fresca. s-maxage=N imposta la freschezza per le cache condivise e sovrascrive max-age lì, ma i browser ignorano s-maxage. public permette a qualsiasi cache di memorizzare; private permette la memorizzazione nel browser ma impedisce l'archiviazione nelle cache condivise.

no-cache permette la memorizzazione ma richiede la validazione all'origin prima del riuso. no-store significa che le cache non devono memorizzare la risposta, ma non è un controllo privacy completo. Usa must-revalidate quando servire contenuti scaduti dopo l'expiry è inaccettabile; un origin non disponibile potrà così restituire un 504 piuttosto che un fallback scaduto.

Evita il no-store a pioggia

Rimuove l'archiviazione anziché richiedere solo un controllo; riservalo alle risposte che davvero non devono essere memorizzate.

03

Versiona gli asset immutabili prima di assegnare una lunga durata

Un URL di asset versionato include una fingerprint di contenuto o una versione di rilascio, ad esempio app.4f2c.js. Quando i byte dell'asset cambiano, pubblica un URL diverso e aggiorna il riferimento nell'HTML. La cache vedrà una nuova risorsa, quindi i visitatori scaricheranno il nuovo asset senza che una invalidazione debba raggiungere ogni browser.

Per una rappresentazione che non cambierà durante la sua finestra di freschezza, Cache-Control: max-age=31536000, immutable è uno schema pratico. immutable indica ai client che lo supportano di non rivedere condizionalmente mentre la risorsa è fresca. Non applicarlo né un max-age di un anno a un file mutabile con lo stesso URL. Mantieni disponibili le vecchie versioni fingerprinted finché l'HTML memorizzato nella cache potrebbe ancora farvi riferimento.

L'HTML è il manifesto

L'HTML sceglie gli URL degli asset, quindi la sequenza di rilascio deve preservare la generazione referenziata.

04

Rendi l'HTML aggiornato tramite validazione, non tramite caching prolungato

L'HTML di solito ha un URL stabile e rivolto all'utente e cambia con il contenuto, i riferimenti agli asset, i feature flag o gli avvisi di sicurezza. Un pattern conservativo per l'HTML pubblico è Cache-Control: no-cache con ETag e Last-Modified quando la tua piattaforma può produrli correttamente. Il browser memorizza il corpo ma usa una richiesta condizionale prima del riuso; una risposta immutata può restituire 304 Not Modified senza corpo.

ETag identifica una versione della risorsa. Su una risposta scaduta, il browser può inviarlo in If-None-Match; se corrisponde, il server risponde 304, altrimenti invia la nuova rappresentazione. Le linee guida RFC preferiscono, quando possibile, sia ETag sia Last-Modified su una risposta 200. no-cache non garantisce la validazione su navigazioni Back o Forward perché un browser può ripristinare uno snapshot della cronologia della sessione.

Qualità del validatore

Un ETag deve cambiare quando la rappresentazione cambia; testalo attraverso origini e deployment.

05

Separa la delivery pubblica dalle risposte personalizzate e sensibili

Una cache condivisa, come un CDN, può riutilizzare una risposta per più utenti. Non permettere che riutilizzi HTML o dati API specifici dell'account tra utenti diversi. Per contenuti personalizzati che possono vivere nel browser, private, no-cache è un punto di partenza sensato: impedisce l'archiviazione condivisa e richiede la validazione. Un header Set-Cookie da solo non blocca la cache.

Per risposte che non devono essere memorizzate, usa no-store e rivedi il codice applicativo, le regole CDN, i service worker, gli archivi del browser, i log e le pagine di errore. Gli header da soli non costituiscono un programma di privacy, compliance o sicurezza dei pagamenti. Fai valutare i flussi sensibili da revisori qualificati in security, privacy e pagamenti per i requisiti applicabili.

Cambi di autorizzazione

Testa sign-in, sign-out, cambio account e cambi di permessi con cache browser e CDN già calde.

06

Distribuisci le modifiche alla cache come un rilascio reversibile

Cattura gli header di base e il comportamento del corpo per richieste uncached e ripetute. In staging, distribuisci prima gli asset versionati, poi l'HTML che li referenzia, e testa l'HTML memorizzato più vecchio contro il nuovo origin. Controlla i percorsi direct-origin e CDN se entrambi esistono. Gli header nella scheda Network di DevTools devono mostrare la policy prevista e il comportamento sui richiami.

Conserva un manifesto di rilascio degli URL degli asset, delle regole header e della versione di configurazione. Se un rilascio combina file client incompatibili, ripristina l'HTML compatibile e il comportamento applicativo, ma non sovrascrivere un file fingerprinted già pubblicato. Ricollega l'HTML alla generazione nota come buona e mantieni entrambe le generazioni finché l'HTML memorizzato nella cache potrebbe richiederle. Una purge sulla cache condivisa non può obbligare i browser a scartare una risposta ancora fresca.

Rimedi proattivi

Trasforma i fallimenti dei test degli header, i 404 degli asset e le discrepanze di versione in cambi da includere nella checklist del rilascio successivo.

AZIONE / VERIFICA

La tua guida pratica alle attività.

  1. 01

    Inventariare le classi di risposta

    Classifica URL di esempio come public o personalized, mutabili o versionati.

    VERIFICA: Include HTML, asset, API, autenticazione, account, checkout ed errori.
  2. 02

    Catturare gli header correnti

    Registra Cache-Control, ETag, Last-Modified, Age, Vary e lo status all'origin e al CDN.

    VERIFICA: Esiste uno snapshot pre-modifica per ogni esempio.
  3. 03

    Fingerprint degli asset mutabili

    Fa sì che la build pubblichi un nuovo URL di asset quando cambiano i suoi byte.

    VERIFICA: Un asset modificato produce un URL diverso e un riferimento HTML aggiornato.
  4. 04

    Impostare policy esplicite

    Usa regole a lunga durata solo per URL versionati immutabili; usa regole che privilegiano la validazione per URL stabili.

    VERIFICA: I test degli header corrispondono alla policy prevista.
  5. 05

    Testare la validazione

    Verifica che un documento immutato restituisca 304 dopo una richiesta condizionale e che uno cambiato restituisca 200 con un nuovo ETag.

    VERIFICA: Tracce di staging mostrano entrambi i percorsi.
  6. 06

    Esercitare i confini della privacy

    Testa due account, sign-out, cambi di ruolo e rotte sensibili con cache calde.

    VERIFICA: Nessuna risposta personalizzata attraversa gli utenti.
  7. 07

    Dimostrare la compatibilità del rilascio

    Carica l'HTML memorizzato nella cache precedente dopo il rilascio successivo.

    VERIFICA: HTML precedente e corrente caricano gli asset referenziati senza 404 o errori di script.
  8. 08

    Documentare il rollback

    Registra la generazione funzionante, la versione degli header, il proprietario e il periodo di retention dei vecchi asset.

    VERIFICA: Un drill non di produzione ripristina la generazione nota come buona senza modificare un URL immutabile.
ARGOMENTI DI DISCUSSIONE

Confronta i compromessi, non i dati privati.

Usa questi spunti con il tuo team o la community dei proprietari di siti. Condividi metodi e lezioni, ma non incollare mai credenziali, dati dei clienti o dettagli infrastrutturali non pubblici.

  1. 01

    Quali classi di URL sul tuo sito sono più difficili da classificare come pubbliche, personalizzate, immutabili o frequentemente variabili, e come stai documentando la decisione?

  2. 02

    Quale test di sequenza di rilascio ti è stato più utile per intercettare un mismatch fra HTML vecchio e asset nuovi prima che un visitatore lo incontrasse?

  3. 03

    Dove si sovrappongono le regole della tua CDN, dell'applicazione e della cache del browser, e chi è responsabile di verificare che il comportamento combinato corrisponda alla policy prevista?

RISORSE POPOLARI / AUTOREVOLI

Apri il materiale di riferimento.

IETFRFC 9111: HTTP Caching ↗

Spiega freschezza, validazione, direttive di cache, invalidazione e limiti per le informazioni sensibili.

Rivisto 2026-09-27
IETFRFC 8246: HTTP Immutable Responses ↗

Definisce il caching immutable, il suo ambito e considerazioni di corruzione.

Rivisto 2026-09-27
MDN Web DocsHTTP caching ↗

Guida pratica su validator, 304, personalizzazione e cache-busting.

Rivisto 2026-09-27
MDN Web DocsCache-Control header ↗

Riferimento per max-age, s-maxage, no-cache, no-store, private, public e must-revalidate.

Rivisto 2026-09-27
MDN Web DocsETag header ↗

Spiega entity tag, If-None-Match e la validazione 304.

Rivisto 2026-09-27
web.devPrevent unnecessary network requests with the HTTP Cache ↗

Guida pratica su URL versionati, validator, policy e deployment.

Rivisto 2026-09-27

Politica delle fonti. Questo articolo usa standard letti e documentazione tecnica di prima mano. Evita affermazioni di performance non supportate e separa le regole HTTP dalla configurazione specifica della piattaforma.

Chiarimenti rapidi

Domande comuni.

no-cache significa che il browser non può memorizzare la pagina?

No. no-cache consente la memorizzazione ma richiede una validazione riuscita con l'origin prima del riuso. Usa no-store solo quando la risposta non deve essere memorizzata, riconoscendo però che no-store da solo non è una garanzia completa di privacy.

Ogni file statico dovrebbe avere una durata di cache di un anno?

No. un max-age di un anno è appropriato solo quando i byte dell'URL non cambieranno in quel periodo, di solito perché l'URL è fingerprinted o versionato. File mutabili con lo stesso URL necessitano di una politica più corta o che privilegi la validazione.

Una purge CDN può risolvere un errore di caching del browser?

Può rimuovere una copia nella cache condivisa gestita, ma non può costringere ogni browser a scartare una risposta ancora fresca. Pubblica un nuovo URL di asset versionato e aggiorna i riferimenti HTML; poi usa il piano di rollback per ripristinare una generazione compatibile se necessario.

Status Is UP Editorial Team · Uptime Enablement Editors

Revisionato da Web performance and release engineering reviewer. Pubblicato 2026-09-27; aggiornato 2026-09-30.