1. Introduction
HTTP è tipicamente utilizzato per sistemi informativi distribuiti, dove le prestazioni possono essere migliorate mediante l'uso di cache di risposta. Questo documento definisce gli aspetti di HTTP/1.1 relativi al caching e al riutilizzo dei messaggi di risposta.
Una cache HTTP (HTTP Cache) è un archivio locale di messaggi di risposta e il sottosistema che controlla la memorizzazione, il recupero e la cancellazione dei messaggi in esso contenuti. Una cache memorizza le risposte memorizzabili in cache al fine di ridurre il tempo di risposta e il consumo di larghezza di banda di rete per future richieste equivalenti. Qualsiasi client o server PUÒ (MAY) utilizzare una cache, sebbene una cache non possa essere utilizzata da un server che agisce come tunnel.
Una cache condivisa (Shared Cache) è una cache che memorizza risposte da riutilizzare da più di un utente; le cache condivise sono solitamente (ma non sempre) distribuite come parte di un intermediario. Una cache privata (Private Cache), al contrario, è dedicata a un singolo utente; spesso vengono distribuite come componente di un user agent.
L'obiettivo del caching in HTTP/1.1 è migliorare significativamente le prestazioni riutilizzando un messaggio di risposta precedente per soddisfare una richiesta corrente. Una risposta memorizzata è considerata "fresca" (Fresh), come definito nella Sezione 4.2, se la risposta può essere riutilizzata senza "validazione" (Validation) (controllo con il server di origine per verificare se la risposta memorizzata in cache rimane valida per questa richiesta). Una risposta fresca può quindi ridurre sia la latenza che il sovraccarico di rete ogni volta che viene riutilizzata. Quando una risposta memorizzata in cache non è fresca, potrebbe essere ancora riutilizzabile se può essere aggiornata mediante validazione (Sezione 4.3) o se l'origine non è disponibile (Sezione 4.2.4).