BFCache: cos'è e in che modo migliorerà la navigazione sul Web

Sapevate che oltre alla normale cache, il browser utilizza anche la BFCache? Google è determinata ad ampliarne il raggio d'azione all'interno di Chrome, consentendo la memorizzazione di qualunque tipo di pagina, anche quelle che ospitano dati riservati.
BFCache: cos'è e in che modo migliorerà la navigazione sul Web

La cache del browser è uno spazio di archiviazione temporanea sul computer o sul dispositivo mobile utilizzata per conservare, in locale, parte dei contenuti delle pagine Web via via visitate, con particolare attenzione alle risorse frequentemente richieste dall’utente. Tra le risorse memorizzate nella cache ci sono immagini, fogli di stile, script JavaScript e altre componenti. Quando l’utente ritorna sulla stessa pagina Web o naviga su altre pagine dello stesso sito, il browser può recuperare le risorse dalla cache locale anziché scaricarle nuovamente dal server remoto. Con ovvi vantaggi in termini di performance. Oltre alla normale cache del browser, però, sapevate che esiste la BFCache?

Cos’è la BFCache di Chrome e come Google vuole migliorare la velocità di navigazione

Il concetto di BFCache non nasce oggi e non è una prerogativa del browser Google. Si tratta di un meccanismo che si occupa di conservare in memoria lo snapshot completo di una pagina Web mentre l’utente si sposta altrove e segue quindi i vari link. La BFCache tiene traccia anche del cosiddetto heap JavaScript ossia delle informazioni in memoria utilizzate per allocare gli oggetti JavaScript durante l’esecuzione di uno script.

BFCache si chiama così perché si parla di “Back/Forward” (BF) cache. Il nome deriva dal fatto che la BFCache migliora l’esperienza di navigazione quando gli utenti utilizzano i pulsanti “Indietro” e “Avanti” della barra degli strumenti. Questi pulsanti consentono di tornare indietro alla pagina precedentemente visitata o di avanzare nuovamente verso pagine già consultate in precedenza. Ogniqualvolta un utente richiedesse una pagina Web utilizzata in passato, grazie alla BFCache il browser può ripristinarla molto rapidamente e in modo semplice.

Il meccanismo, dicevamo, non è un’esclusiva di Chrome: Firefox e Safari se ne servono già da diversi anni.

BFCache supera anche le impostazioni definite sulle singole pagine Web

I gestori dei siti Web possono specificare come le loro pagine Web sono memorizzate nella cache del browser utilizzando l’intestazione Cache-control:. Una delle opzioni utilizzabili consiste nell’intestazione Cache-control: no-store, che impedisce la memorizzazione dei dati nella cache locale, lato client.

Ciò che propone Google con la nuova “ricetta” per la BFCache di Chrome è ignorare l’eventuale intestazione Cache-control: no-store, anche nel caso delle pagine HTTPS.

In molti hanno sollevato preoccupazioni rispetto alla possibilità che l’utente, ma soprattutto soggetti terzi, possano ripristinare anche pagine (sempre e comunque inserite in cache) contenenti dati personali e informazioni riservate.

Battibecco tra Opera e Google sul comportamento della nuova cache

Fergal Daly, ingegnere software presso Google, spiega che l’obiettivo primario della nuova BFCache di Chrome non è certo quello di impedire il ripristino di pagine eventualmente contenenti dati riservati. Piuttosto, il focus dovrebbe essere quello di scongiurare il ripristino delle pagine con dati personali ai quali l’utente non dovrebbe avere più accesso.

L’ingegnere spiega infatti che se un’applicazione Web non effettua modifiche sui cookie, il browser ha ragione di permettere l’accesso alle risorse ospitate nelle cache. È invece importante, semmai, che lato server si impedisca correttamente l’accesso alle risorse, precedentemente gestite dal browser, alle quali il client non dovrebbe più accedere.

Non mancano però le voci fuori dal coro: Daniel Bratell, sviluppatore di Opera, osserva che Google sta toccando un’area sensibile e non è certo l’impatto che le modifiche avranno davvero “nel mondo reale”. E se l’opzione Cache-control: no-store è sicuramente abusata, continua Bratell, il nuovo comportamento previsto per la BFCache non equivale forse a infrangere una “promessa” fatta con gli sviluppatori Web? Da un lato, infatti, si chiede di non memorizzare in cache una risorsa, dall’altro il browser ignora del tutto tale direttiva.

Daly non è d’accordo e sottolinea che Cache-control: no-store dice soltanto di non memorizzare una pagina Web nella cache normale del browser, non nella BFCache. “La BFCache non fa parte della cache HTTP, e gli sviluppatori non dovrebbero interpretare l’intestazione come una promessa che la pagina non sarà memorizzata nella BFCache“, osserva.

Credit immagine in apertura: iStock.com/Muharrem huner

Ti consigliamo anche

Link copiato negli appunti