HTTP - Caching
HTTP viene generalmente utilizzato per i sistemi informativi distribuiti, in cui le prestazioni possono essere migliorate mediante l'uso di cache di risposta. Il protocollo HTTP / 1.1 include una serie di elementi destinati a far funzionare la cache.
L'obiettivo della memorizzazione nella cache in HTTP / 1.1 è eliminare la necessità di inviare richieste in molti casi ed eliminare la necessità di inviare risposte complete in molti altri casi.
I meccanismi di base della cache in HTTP / 1.1 sono direttive implicite per le cache in cui il server specifica i tempi di scadenza e i validatori. Noi usiamo ilCache-Control intestazione per questo scopo.
Il Cache-ControlL'intestazione consente a un client o un server di trasmettere una varietà di direttive nelle richieste o nelle risposte. Queste direttive in genere sovrascrivono gli algoritmi di memorizzazione nella cache predefiniti. Le direttive di memorizzazione nella cache sono specificate in un elenco separato da virgole. Per esempio:
Cache-control: no-cache
Le seguenti direttive di richiesta cache possono essere utilizzate dal client nella sua richiesta HTTP:
| SN | Direttiva e descrizione della richiesta di cache |
|---|---|
| 1 | no-cache Una cache non deve utilizzare la risposta per soddisfare una richiesta successiva senza una riconvalida riuscita con il server di origine. |
| 2 | no-store La cache non dovrebbe memorizzare nulla sulla richiesta del client o sulla risposta del server. |
| 3 | max-age = seconds Indica che il client è disposto ad accettare una risposta la cui età non è maggiore del tempo specificato in secondi. |
| 4 | max-stale [ = seconds ] Indica che il client è disposto ad accettare una risposta che ha superato il tempo di scadenza. Se vengono forniti dei secondi, non deve essere scaduto più di quel tempo. |
| 5 | min-fresh = seconds Indica che il client è disposto ad accettare una risposta la cui durata di aggiornamento non è inferiore alla sua età corrente più il tempo specificato in secondi. |
| 6 | no-transform Non converte l'entità-corpo. |
| 7 | only-if-cached Non recupera nuovi dati. La cache può inviare un documento solo se è nella cache e non deve contattare il server di origine per vedere se esiste una copia più recente. |
Le seguenti direttive di risposta della cache possono essere utilizzate dal server nella sua risposta HTTP:
| SN | Direttiva e descrizione della risposta della cache |
|---|---|
| 1 | public Indica che la risposta può essere memorizzata nella cache da qualsiasi cache. |
| 2 | private Indica che tutto o parte del messaggio di risposta è destinato a un singolo utente e non deve essere memorizzato nella cache da una cache condivisa. |
| 3 | no-cache Una cache non deve utilizzare la risposta per soddisfare una richiesta successiva senza una nuova convalida riuscita con il server di origine. |
| 4 | no-store La cache non dovrebbe memorizzare nulla sulla richiesta del client o sulla risposta del server. |
| 5 | no-transform Non converte l'entità-corpo. |
| 6 | must-revalidate La cache deve verificare lo stato dei documenti obsoleti prima di utilizzarla e quelli scaduti non devono essere utilizzati. |
| 7 | proxy-revalidate La direttiva proxy-revalidate ha lo stesso significato della direttiva must-revalidate, tranne per il fatto che non si applica alle cache degli user agent non condivise. |
| 8 | max-age = seconds Indica che il client è disposto ad accettare una risposta la cui età non è maggiore del tempo specificato in secondi. |
| 9 | s-maxage = seconds L'età massima specificata da questa direttiva sostituisce l'età massima specificata dalla direttiva max-age o dall'intestazione Expires. La direttiva s-maxage viene sempre ignorata da una cache privata. |
