2. Overview of Cache Operation (Panoramica delle operazioni della cache)
Il corretto funzionamento della cache preserva la semantica dei trasferimenti HTTP riducendo la trasmissione di informazioni già detenute nella cache. Vedere la sezione 3 di [HTTP] per la terminologia generale e i concetti fondamentali di HTTP.
Sebbene il caching sia una funzionalità completamente opzionale (OPTIONAL) di HTTP, si può presumere che il riutilizzo delle risposte memorizzate nella cache sia desiderabile e, in assenza di requisiti o configurazione locale che lo impediscano, sia il comportamento predefinito. Pertanto, l'attenzione dei requisiti della cache HTTP è rivolta a impedire che le cache memorizzino risposte non riutilizzabili o riutilizzino risposte memorizzate in modo inappropriato, piuttosto che imporre che le cache memorizzino e riutilizzino sempre risposte specifiche.
Una "chiave di cache (Cache Key)" è l'informazione che una cache utilizza per selezionare una risposta, costituita almeno dal metodo di richiesta (Request Method) e dall'URI di destinazione (Target URI) utilizzati per recuperare la risposta memorizzata; il metodo determina in quali circostanze quella risposta può essere utilizzata per soddisfare richieste successive. Tuttavia, molte cache HTTP di uso comune oggi memorizzano nella cache solo le risposte GET, utilizzando quindi solo l'URI come chiave di cache.
Per i target di richiesta soggetti a negoziazione del contenuto (Content Negotiation), una cache potrebbe memorizzare più risposte. La cache distingue queste risposte incorporando anche alcuni dei campi di intestazione della richiesta originale nella chiave di cache, utilizzando le informazioni dal campo di intestazione della risposta Vary, come descritto nella sezione 4.1.
Una cache potrebbe incorporare materiale aggiuntivo nella chiave di cache. Ad esempio, una cache dell'user agent potrebbe includere l'identità del sito di riferimento, "doppiando così la chiave (Double Keying)" della cache per evitare determinati rischi per la privacy (vedere la sezione 7.2).
Più comunemente, le cache memorizzano il risultato riuscito di una richiesta di recupero: cioè, una risposta 200 (OK) a una richiesta GET contenente una rappresentazione (Representation) della risorsa di destinazione (vedere la sezione 9.3.1 di [HTTP]). Tuttavia, è anche possibile memorizzare reindirizzamenti, risultati negativi (ad esempio, 404 (Not Found)), risultati incompleti (ad esempio, 206 (Partial Content)) e risposte a metodi diversi da GET se la definizione del metodo consente tale caching e definisce qualcosa di adatto per l'uso come chiave di cache.
Quando una cache non può contattare il server di origine (Origin Server) o non può trovare un percorso di inoltro per una richiesta, la cache è in uno stato "disconnesso (Disconnected)". In alcune circostanze, una cache disconnessa può fornire risposte obsolete (Stale Responses) (sezione 4.2.4).