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. |