Caching static and dynamic content: How does it work?

A differenza del contenuto statico, il contenuto dinamico è diverso per ciascun utente, il che significa che non può essere utilizzato da più utenti ed è difficile da memorizzare nella cache. Tuttavia, con la tecnologia giusta, il caching del contenuto dinamico è possibile.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Differenze tra contenuto statico e contenuto dinamico
  • Scopri perché il contenuto dinamico è difficile da memorizzare nella cache e come invece la nuova tecnologia rende possibile il caching
  • Scopri la differenza tra caching del contenuto dinamico e compressione dinamica dei contenuti
  • Scopri come i tag Edge Side Include consentono di memorizzare nella cache parti statiche di una pagina Web dinamica

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Qual è la differenza tra contenuto statico e contenuto dinamico?

Il contenuto statico è qualsiasi file memorizzato in un server ed è lo stesso ogni volta che viene consegnato agli utenti. File e immagini HTML sono esempi di questo tipo di contenuto. Il contenuto statico è come un giornale: una volta pubblicato il numero di un giornale, contiene gli stessi articoli e foto tutto il giorno per tutti coloro che ne ritirano una copia, indipendentemente dai nuovi sviluppi durante la giornata.

Il contenuto dinamico è un contenuto che cambia in base a fattori specifici dell'utente, ad esempio l'ora della visita, la posizione e il dispositivo. Una pagina Web dinamica non avrà lo stesso aspetto per tutti e può cambiare man mano che gli utenti interagiscono con essa, come se un giornale potesse riscriversi mentre qualcuno lo sta leggendo. Ciò rende le pagine Web più personalizzate e più interattive.

Pagina Web statica Pagina Web dinamica

Un moderno sito Web di notizie è un buon esempio di contenuto dinamico: a differenza di un giornale, gli articoli vengono aggiornati durante il giorno e la home page può presentare titoli diversi in base alla posizione del visitatore del sito o allo stato di accesso. Le pagine dei social media sono un altro esempio: il feed delle notizie di Facebook ha un aspetto totalmente diverso per ogni utente e gli utenti sono in grado di interagire con il contenuto per modificarlo (mettendo mi piace, condividendo o commentando i post).

Le pagine Web dinamiche non vengono archiviate come file HTML statici. Invece, gli script lato server generano un file HTML in risposta a eventi, come le interazioni dell'utente o gli accessi dell'utente, e inviano il file HTML al browser Web. Poiché il contenuto dinamico viene generato lato server, in genere viene servito da server di origine, non da una cache.

Per molto tempo, il contenuto dinamico è stato considerato non memorizzabile nella cache. Ma le nuove tecnologie consentono ai siti Web di offrire contenuti dinamici da una cache, riducendo significativamente la latenza mantenendo l'esperienza utente interattiva.

Come viene memorizzato nella cache il contenuto statico?

Il normale processo di Web caching prevede che una cache salvi una copia del file statico, ad esempio un'immagine, quando il contenuto viene offerto in modo che sia più vicino all'utente e venga consegnato più rapidamente la volta successiva. I browser e le CDN (content delivery network) possono memorizzare nella cache il contenuto statico per un periodo di tempo definito e fornirlo agli utenti fintanto che continua a essere richiesto. Ciò è possibile perché il contenuto statico non cambia nel tempo; lo stesso file può essere consegnato agli utenti più e più volte.

Come funziona il caching del contenuto dinamico?

Il contenuto dinamico viene generato da script che modificano il contenuto di una pagina. Eseguendo script in una cache CDN anziché in un server di origine distante, il contenuto dinamico può essere generato e distribuito da una cache. Il contenuto dinamico è quindi essenzialmente" memorizzato nella cache" e non deve essere fornito fin dall'origine, riducendo il tempo di risposta alle richieste dei client e velocizzando le pagine Web dinamiche.

Cloudflare Workers, ad esempio, è costituito da funzioni JavaScript serverless che sono eseguite sulla CDN di Cloudflare. Possono rispondere a una varietà di eventi e input, inclusi tipo di dispositivo, ora del giorno, posizione dell'utente o dati provenienti da API di terze parti. Sulla base di questi parametri, il contenuto dinamico può essere generato e fornito ai dispositivi client oppure il contenuto statico può essere modificato, memorizzato nella cache o eliminato dalla cache.

Poiché i Cloudflare Workers sono codice JavaScript, gli sviluppatori possono utilizzarli per creare un'ampia gamma di funzionalità o un'intera applicazione, oltre a memorizzare nella cache il contenuto dinamico. Inoltre, Cloudflare Workers può essere implementato e può propagare alle posizioni CDN in tutto il mondo in pochi secondi.

Cloudflare Workers viene eseguito in un ambiente di esecuzione leggero in modo che il codice possa ruotare ed essere eseguito entro pochi millisecondi. Consentono agli sviluppatori di eseguire il codice senza preoccuparsi della configurazione di un backend. Scopri di più sull'elaborazione serverless.

Qual è la differenza tra caching e compressione del contenuto dinamico?

Another approach to speeding up dynamic webpages is to compress dynamic content generated by the origin server and deliver it as quickly and efficiently as possible. With dynamic compression, the content still comes from the origin server instead of a cache, but the HTML files generated are made significantly smaller so that they can reach the client device more quickly.

In che modo Edge Side Includes (ESI) velocizza le pagine Web dinamiche?

Spesso, una grande quantità di contenuti su una pagina Web dinamica rimane coerente per tutti gli utenti e solo alcuni elementi della pagina sono dinamici. Ciò significa che gran parte del codice HTML viene duplicato in ciascuna copia dinamica della pagina. Per risolvere questa inefficienza, diverse aziende hanno collaborato per sviluppare Edge Side Include (ESI), un linguaggio di markup che specifica dove viene visualizzato il contenuto dinamico su una pagina Web. ESI è in uso su alcuni CDN, ma non è ancora accettato dal W3C, l'organizzazione che governa gli standard Web.

Il contenuto con un tag ESI viene recuperato da qualche altra parte, mentre il resto del contenuto della pagina Web può essere memorizzato nella cache. Se solo una parte della pagina Web viene generata dinamicamente e il resto viene memorizzato nella cache, la pagina Web verrà caricata molto più rapidamente che se fosse necessario generare l'intera pagina per ciascun utente. ESI può essere combinato con Cloudflare Workers per rendere il processo più efficiente.