Vi parliamo adesso della cache del browser. Dato che oggi tutti i principali motori di ricerca, ma anche gli altri hanno questa funzione. Ossia quella di creare una copia della pagina web richiesta. Una cache appunto.

La copia della risorsa nella cache del browser

Cache Browser

Prendiamo in considerazione la seguente figura.
Quando un utente arriva su una pagina, parte una richiesta verso il server che fornisce la pagina stessa.Fra le varie informazione che il server comunica ci sono alcune indicazione di convalida, un token e altro ancora. Per esempio come mostrato in figura uno. Abbimo

  • 200 OK che significa che la risposta ha avuto esito positivo ed è stata generata
  • Content-Lenght 1024 ossia la lunghezza del file inviato dal server al client
  • Cache-Control ossia il tempo in secondi di validità della cache
  • ETag: “x234dff” che rappresenta il token autogenerato dal server per la convalida.

Prendiamo in considerazione il fatto che ci troviamo nella condizione che i 120 secondi siano passati e quindi il browser prima di visualizzare la pagina invia una nuova richiesta al server. Il server prima di inviare tutto il file controlla il token ETag per vedere se è lo stesso che ha in memoria lui. In caso positivo vuol dire che la pagina non è stata modificata dal server remoto e quindi non necessita mandare di nuovo il file.

Volendo dare una rappresentazione grafica del tutto avremo
Cache Browser
In questo caso la risposta del server sarà

304 Not Modified

La Cache Control

Cache Browser

Finora abbiamo visto che la Cache Control contiene un’indicazione del tempo di validità della cache stessa. Ma può assumere anche altri valori. Che sono
no cache indica che ogni volta che viene richiesto un url va verificato sul server se la risposta è cambiata o meno
no store vieta al browser e a tutti i servizi di cache intermedi di memorizzare una copia della risposta ricevuta dal server stesso. Si pensi ad esempio dati sensibili di origine bancaria.

  • public la risposta viene messa normalmente nella cache del browser.
  • private la risposta viene messa in cache , ma sono rivolte ad un unico utente, non sono ammesse cache intermedie.

Le cache intermedie sono per esempio quelle dei CDN

Talune volte anche per fare delle operazioni di debugging si ha necessità di annullare la cache anche prima che sia trascorso il max age. Per fare questo si ricorre ad un espediente.

Non si chiama per esempio il file

style.css.

ma il file

style.x234dff.css.

Dove x234dff è un token fittizio da noi inventato che ovviamente non corrisponderà a quello memorizzato nella cache del browser.
Per ogni dubbo o perplessità scriveteci pure un commento qui sotto.