Servizi Web RESTful - Caching
La memorizzazione nella cache si riferisce alla memorizzazione della risposta del server nel client stesso, in modo che un client non debba effettuare una richiesta al server per la stessa risorsa ancora e ancora. Una risposta del server dovrebbe contenere informazioni su come eseguire la memorizzazione nella cache, in modo che un client memorizzi nella cache la risposta per un periodo di tempo o non memorizzi mai nella cache la risposta del server.
Di seguito sono riportate le intestazioni che una risposta del server può avere per configurare la memorizzazione nella cache di un client:
Sr.No. | Intestazione e descrizione |
---|---|
1 |
Date Data e ora della risorsa in cui è stata creata. |
2 |
Last Modified Data e ora della risorsa in cui è stata modificata l'ultima volta. |
3 |
Cache-Control Intestazione primaria per controllare la memorizzazione nella cache. |
4 |
Expires Data e ora di scadenza della memorizzazione nella cache. |
5 |
Age Durata in secondi da quando la risorsa è stata recuperata dal server. |
Intestazione controllo cache
Di seguito sono riportati i dettagli di un'intestazione Cache-Control:
Sr.No. | Direttiva e descrizione |
---|---|
1 |
Public Indica che la risorsa può essere memorizzata nella cache da qualsiasi componente. |
2 |
Private Indica che la risorsa può essere memorizzata nella cache solo dal client e dal server, nessun intermediario può memorizzare nella cache la risorsa. |
3 |
no-cache/no-store Indica che una risorsa non è memorizzabile nella cache. |
4 |
max-age Indica che la memorizzazione nella cache è valida fino a max-age in secondi. Successivamente, il cliente deve fare un'altra richiesta. |
5 |
must-revalidate Indicazione al server di riconvalidare la risorsa se la max-age è stata superata. |
Migliori pratiche
Mantieni sempre contenuti statici come immagini, CSS, JavaScript memorizzabili nella cache, con data di scadenza da 2 a 3 giorni.
Non mantenere mai la data di scadenza troppo alta.
Il contenuto dinamico dovrebbe essere memorizzato nella cache solo per poche ore.