Aller au contenu principal

2. Overview of Cache Operation (Aperçu du fonctionnement du cache)

Un fonctionnement correct du cache préserve la sémantique des transferts HTTP tout en réduisant la transmission d'informations déjà détenues dans le cache. Voir la section 3 de [HTTP] pour la terminologie générale et les concepts fondamentaux de HTTP.

Bien que la mise en cache soit une fonctionnalité entièrement optionnelle (OPTIONAL) de HTTP, on peut supposer que la réutilisation des réponses mises en cache est souhaitable et, en l'absence d'exigences ou de configuration locale l'empêchant, constitue le comportement par défaut. Par conséquent, l'accent mis sur les exigences du cache HTTP est mis sur la prévention de la mise en cache de réponses non réutilisables ou de la réutilisation inappropriée de réponses stockées, plutôt que sur l'obligation pour les caches de toujours stocker et réutiliser des réponses spécifiques.

Une "clé de cache (Cache Key)" est l'information qu'un cache utilise pour sélectionner une réponse, composée au minimum de la méthode de requête (Request Method) et de l'URI cible (Target URI) utilisés pour récupérer la réponse stockée ; la méthode détermine dans quelles circonstances cette réponse peut être utilisée pour satisfaire les requêtes ultérieures. Cependant, de nombreux caches HTTP couramment utilisés aujourd'hui ne mettent en cache que les réponses GET, utilisant ainsi uniquement l'URI comme clé de cache.

Pour les cibles de requête soumises à la négociation de contenu (Content Negotiation), un cache peut stocker plusieurs réponses. Le cache distingue ces réponses en incorporant également certains champs d'en-tête de la requête d'origine dans la clé de cache, en utilisant les informations du champ d'en-tête de réponse Vary, comme décrit dans la section 4.1.

Un cache peut incorporer du matériel supplémentaire dans la clé de cache. Par exemple, un cache d'agent utilisateur pourrait inclure l'identité du site référent, "doublant ainsi la clé (Double Keying)" du cache pour éviter certains risques de confidentialité (voir la section 7.2).

Le plus souvent, les caches stockent le résultat réussi d'une requête de récupération : c'est-à-dire une réponse 200 (OK) à une requête GET contenant une représentation (Representation) de la ressource cible (voir la section 9.3.1 de [HTTP]). Cependant, il est également possible de stocker des redirections, des résultats négatifs (par exemple, 404 (Not Found)), des résultats incomplets (par exemple, 206 (Partial Content)) et des réponses à des méthodes autres que GET si la définition de la méthode permet une telle mise en cache et définit quelque chose de convenable pour être utilisé comme clé de cache.

Lorsqu'un cache ne peut pas contacter le serveur d'origine (Origin Server) ou ne peut pas trouver de chemin de transfert pour une requête, le cache est dans un état "déconnecté (Disconnected)". Dans certaines circonstances, un cache déconnecté peut servir des réponses périmées (Stale Responses) (section 4.2.4).