Sfruttare il Caching per velocizzare il Vostro sito

A parte alcuni siti in html completamente statici, ad esempio le landing page, quale che sia il sistema software e/o il framework utilizzato, la maggior parte dei siti sono costituiti da contenuti dinamici.

Con contenuti dinamici si intende che la pagina in oggetto viene costruita elaborando dati, presenti solitamente in un database, a seconda della richiesta dell’utente e di altri parametri che possono essere presenti.

In questo caso il server recupera questi dati, li aggrega, esegue i calcoli necessari e restituisce al browser una pagina statica che verrà visualizzata, questo processo può portare ad un ritardo nella visualizzazione della pagina dipendente dal traffico e dalla capacità di calcolo del server stesso.

I contenuti erogati da un webserver possono essere messi in una cache software, cioè una piccola zona di memoria ottimizzata per essere rapida e reattiva. I risultati immediati sono un minor tempo di elaborazione da parte del server, e quindi un download più rapido da parte dell’utente.

Il caching è un modo essenziale per velocizzare il caricamento delle pagine Web.

Già questa sola funzionalità può far diminuire di molto i tempi di attesa, e permetterti di avere:

  • Un sito generalmente più veloce;
  • Una migliore e soddisfacente esperienza utente.

Ma cos’è il caching? Come funziona? Come è possibile ottenere questi  miglioramenti?

Il caching è una tecnica che prevede la memorizzazione temporanea di alcune risorse già elaborate, all’interno di uno spazio apposito chiamato – appunto Cache.

Attraverso il caching viene ottimizzato il modo con cui sono trattati file HTML, CSS, script, documenti di testo e file multimediali, per consentire migliori tempi di caricamento e minore carico sul server.

Ci sono tre entità che entrano in gioco:

  • Il webserver, quindi Cache lato Server;
  • Il browser, quindi Cache lato Client;
  • Eventuali terze parti, come Reverse Proxy e Content Delivery Networks.

Caching lato Server

Come suggerisce il nome, questo tipo di caching viene eseguito sul  webserver e, sostanzialmente, consente di ridurne il carico di lavoro e restituire i contenuti più velocemente.

Viene eseguito salvando in cache i contenuti generati dinamicamente, così che il webserver non li rielabori ad ogni richiesta, ma restituisca contenuti staticizzati, come copia “elaborata” degli originali.

Pensiamo ad esempio ad un blog. Può essere implementata la cache lato server, così che vengano salvate in cache le pagine HTML elaborate dei post. Quando un utente visita quella pagina il server, la prima volta esegue i suoi calcoli e produce un contenuto staticizzato, in seguito questo contenuto viene memorizzato e servito ai client che lo richiedono senza ulteriori elaborazioni.

Caching lato Client

Stavolta è il client che si occupa del caching. Alla prima visita, il browser scarica e memorizza in cache le risorse, così che alle visite successive non sono da riscaricare, ma vengono recuperate dalla  cache locale del client.

Il browser tiene in cache solo determinati contenuti, per un tempo  stabilito. Possiamo decidere noi cosa e per quanto, facendo in modo che queste direttive vengano inviate ai browser; questa pratica è conosciuta come Leverage Browser Caching.

Incoraggiare il Browser Caching

Si possono incoraggiare i browser ad eseguire il caching, con delle direttive nel file di configurazione del server. Sostanzialmente diremo al browser di salvare in cache determinati tipi di file, per un tempo da noi stabilito.

Si usa “incoraggiare” perché, lato client potrebbero esserci delle impostazioni che lo portano ad ignorare le disposizioni impartite dal server

Queste sono le basi per un caching efficiente un po’ per tutte le situazioni, a seconda delle esigenze e del software utilizzato è possibile integrare queste impostazioni con altre pratiche altrettanto efficaci di cui tratteremo nei prossimi articoli.