Caching a pagina intera: la necessità di velocità
Pubblicato: 2020-10-02
La memorizzazione nella cache del sito Web e la memorizzazione nella cache a pagina intera sono tecniche per accelerare il tempo di caricamento dei siti Web. È una pratica molto comune che viene utilizzata quasi ovunque a causa degli enormi guadagni che apporta alle prestazioni del sito Web. La memorizzazione nella cache funziona rendendo il server web molto più efficiente nello svolgere il proprio lavoro. La memorizzazione nella cache a pagina intera è una forma più avanzata di memorizzazione nella cache, quindi per comprendere la memorizzazione nella cache a pagina intera iniziamo con la memorizzazione nella cache normale e costruiamo da lì.
Negozio di ricambi auto di Joe: un sito Web statico

Immagina Joe. È un ragazzo che possiede e gestisce un grande magazzino pieno di parti di automobili. Nella parte anteriore del magazzino c'è un bancone dove arrivano i clienti per acquistare i suoi pezzi. Quando un cliente arriva per acquistare alcune parti, la transazione segue questa procedura:
- Il cliente porge a Joe un elenco di parti di automobili.
 - Joe prende la prima parte e la mette sul bancone.
 - Joe prende la seconda parte e la mette sul bancone.
 - E così via fino alla fine della lista.
 - Il cliente paga e se ne va.
 
Quindi, come si applica a un sito Web statico?
Un sito Web statico non utilizza database, script PHP o altri programmi. Pensa a un semplice sito Web composto solo da pagine e immagini HTML. Joe e il suo magazzino rappresentano le parti di questo semplice sito web in questo modo:
- Il magazzino è il server fisico.
 - Joe è il software del server web, ad esempio Apache
 - Le parti di automobili sono i file che compongono un sito Web, ad esempio immagini e file HTML.
 
La procedura per servire questo semplice sito è:
- Un browser richiede una pagina Web da Apache in esecuzione sul server.
 - Apache legge il primo file dal disco e lo invia al browser.
 - Apache legge il 2° file dal disco e lo invia al browser.
 - E così via finché non ha recuperato tutto.
 - Il browser visualizza la pagina Web completata.
 
Questa configurazione funziona bene per i piccoli siti Web ma fallisce rapidamente sotto pressione.
Joe si dà da fare – La memorizzazione nella cache salva la giornata

Il sistema di Joe funziona bene finché non inizia a darsi da fare. Così impegnato, infatti, che sta trascorrendo la maggior parte del suo tempo a camminare dal bancone e nel magazzino che e non riesce a tenere il passo con tutti i nuovi clienti.
Joe potrebbe acquistare un magazzino in più e assumere qualcun altro che lavori lì per soddisfare la domanda extra. Ma questo è costoso e non massimizza le risorse che già ha. Invece, Joe pensa a come potrebbe rendere più efficiente il suo processo nel magazzino che ha.
Joe si rende conto che il 90% delle parti che sta andando a prendere per i clienti sono solo 10. Quindi decide di tenere quelle 10 parti sotto il bancone dove può prenderle immediatamente quando qualcuno le chiede. Ora può soddisfare la maggior parte delle richieste dei clienti direttamente dallo sportello senza un viaggio nel magazzino. Questo è molto più veloce.
La memorizzazione nella cache fa qualcosa di molto simile su un server web. Proprio come il ritorno di Joe nel magazzino, l'azione più lenta durante l'elaborazione di file statici è il caricamento del file dal dispositivo di archiviazione. Ciò che fa la memorizzazione nella cache è mantenere i file richiesti più di frequente nella RAM, dove è possibile accedervi migliaia di volte più velocemente rispetto alla loro lettura dalla memoria.

Questo tipo di memorizzazione nella cache funziona alla grande per immagini e altri file statici, ma WordPress è un sito Web dinamico con script e database PHP.
Immettere la memorizzazione nella cache a pagina intera.
La vita di Joe diventa complicata: PHP, database e memorizzazione nella cache

Una nuova officina Toyota viene aperta nella stessa città di Joe e usano Joe per fornire i pezzi di ricambio. Questo è ottimo per Joe tranne che per un problema, Toyota ordina solo parti in base al numero di parte Toyota. Danno a Joe un vasto catalogo in modo che possa cercare i numeri di parte della Toyota e abbinarli alle parti nel suo magazzino ogni volta che riceve un ordine da loro.
Ma questo fa rallentare Joe di nuovo.
Ogni volta che deve cercare la parte Toyota nel catalogo, gli ci vuole molto tempo. Anche se è una delle parti sottobanco, non può semplicemente raggiungerla perché deve prima cercare il numero di parte Toyota nel catalogo. Il suo vecchio sistema di tenere sotto controllo le 10 parti più richieste sta ancora aiutando, ma le nuove ricerche nel catalogo ora sono il grosso collo di bottiglia.
Joe ci pensa di nuovo e trova una soluzione. Nota che la maggior parte degli ordini Toyota sono solo uno di un piccolo gruppo. Quindi scrive un cheat sheet dei codici Toyota più comuni e le parti corrispondenti e lo attacca al piano di lavoro.
Ora non ha bisogno di utilizzare il catalogo per la maggior parte degli ordini Toyota, può dare un'occhiata al cheatsheet e convertire il numero di parte Toyota quasi istantaneamente in una parte che può recuperare.
I siti WordPress hanno un problema simile a Joe. WordPress costruisce ogni pagina web quando è richiesto dal browser. Le pagine HTML caricate dal tuo browser non esistono finché non le chiedi a WordPress.
Ecco come WordPress crea una pagina del tuo sito:
- Un browser richiede una pagina Web da WordPress.
 - Uno script PHP accetta la richiesta e interroga il database per ciò di cui ha bisogno per costruire la pagina.
 - Il database cerca e restituisce tutte le informazioni al processo PHP.
 - Lo script PHP costruisce la pagina con tali informazioni e la invia al browser.
 
Questo è un sacco di lavoro ed è il motivo per cui i siti Web WordPress senza cache richiedono molte volte più risorse del computer rispetto ai siti Web statici.
Proprio come Joe, il tuo sito WordPress riceve molto spesso richieste per le stesse pagine, come la pagina di destinazione del tuo sito poiché questa pagina viene servita ogni volta che arriva un nuovo visitatore. In una configurazione senza cache, WordPress deve elaborare questa richiesta con script PHP ed eseguire query di database per ogni visitatore anche se crea ogni volta la stessa identica pagina.
Questo crea una grande quantità di lavoro duplicato.
La memorizzazione nella cache a pagina intera risolve questo problema. Nota che una determinata richiesta e la pagina che viene generata sono sempre le stesse, quindi memorizza nella cache una copia della pagina nella RAM. Mantiene anche un cheat sheet delle richieste che hanno creato quelle pagine, quindi quando un visitatore richiede una pagina che ha generato prima che la serva direttamente dalla RAM piuttosto che ricrearla.
Ciò riduce significativamente il carico di lavoro del server web bypassando molti processi PHP e ricerche nel database e servendo pagine generate in precedenza direttamente dalla RAM. Questo può darti un sito Web WordPress dinamico che è efficiente quasi quanto un sito Web statico.
La memorizzazione nella cache e la memorizzazione nella cache dell'intera pagina sono tecnologie eccellenti che sfruttano le risorse del tuo server web per massimizzare l'efficienza del tuo server web e darti un sito WordPress scattante.
