1. Introduzione
Le distribuzioni HTTP moderne utilizzano spesso più livelli di caching. Ad esempio, un sito Web potrebbe utilizzare una cache sul server di origine stesso; potrebbe distribuire un livello di caching nella stessa rete del server di origine, potrebbe utilizzare uno o più CDN distribuiti su Internet e potrebbe anche beneficiare del caching del browser.
Poiché è spesso desiderabile controllare queste diverse classi di cache separatamente, è necessario un mezzo per indirizzare le direttive di cache a esse. Ad esempio, se un editore dispone di un meccanismo per invalidare i contenuti di una cache con cui ha una relazione (come una cache CDN), potrebbe sentirsi più a suo agio nell'assegnarle una politica di caching più generosa pur volendo comunque limitare il comportamento di altre cache.
Il campo di intestazione di risposta HTTP Cache-Control (definito nella Sezione 5.2 di [HTTP-CACHING]) è ampiamente utilizzato per dirigere il comportamento di caching. Tuttavia, è relativamente indifferenziato; mentre alcune direttive di cache (ad esempio, s-maxage) sono indirizzate a una classe specifica di cache (per s-maxage, cache condivise), il targeting non è disponibile in modo coerente in tutte le direttive di cache esistenti (ad esempio, stale-while-revalidate). Ciò è particolarmente problematico poiché il numero di estensioni di caching cresce insieme al numero di obiettivi potenziali.
Alcune implementazioni hanno definito meccanismi di controllo ad hoc per superare questo problema, ma la loro interoperabilità è bassa. La Sezione 2 definisce un framework standard per il controllo della cache mirato utilizzando intestazioni di risposta HTTP, e la Sezione 3 definisce una tale intestazione: il campo di intestazione di risposta CDN-Cache-Control.
1.1. Convenzioni di notazione
Le parole chiave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" e "OPTIONAL" in questo documento devono essere interpretate come descritto in BCP 14 [RFC2119] [RFC8174] quando, e solo quando, appaiono in maiuscolo, come mostrato qui.