- Mémoire cache d'internet
-
Cache-Control
En informatique, le Cache-Control est un en-tête du protocole HTTP concernant la mémoire cache. En effet la plupart des navigateurs web utilisent un espace réservé sur le disque dur pour enregistrer une copie des pages qui sont visitées (souvent). Ainsi quand l'utilisateur demande une page, le navigateur affiche parfois simplement la copie qu'il avait, pour gagner du temps. Le bouton recharger (reload) de certains navigateurs permet de mettre à jour la page.
Sommaire
HTTP/1.0
À ce niveau du protocole, il ne permet qu'un contrôle du cache rudimentaire
Pragma: no-cache
Permet au navigateur d'indiquer au cache de récupérer le document auprès du serveur d'origine plutôt que de lui renvoyer celui qu'il conserve.
HTTP/1.1
À ce niveau du protocole, l'en-tête Cache-Control offre plus de possibilité. Le navigateur ou le serveur peuvent donner des directives à un cache.
L'en-tête Cache-Control a pour valeur une liste de directives, séparées par des virgules. La spécification HTTP/1.1 dans RFC 2616 définit plusieurs valeurs pour l'en-tête Cache-Control. Certaines sont très peu utilisées.
public
La réponse HTTP peut être mise en cache par n'importe quel cache. Un client ou un serveur proxy peuvent mettre en cache par exemple la réponse. Cela permet le partage de contenu à travers les utilisateurs qui utilisent le même serveur proxy.
Par exemple, si un document est renvoyé après authentification de l'utilisateur par le serveur et que cette authentification n'est destinée qu'à faire des statistiques et non un contrôle d'accès, le document peut être considéré comme public.
private
Le message de réponse est destiné à un client unique et ne doit pas être mis en cache par un cache partagé. Un serveur proxy ne doit pas mettre en cache la réponse bien qu'un client puisse le faire. Cela permet au client de tenir à jour une version mise en mémoire cache pendant que tous les clients qui utilisent le même serveur proxy conservent les versions différentes mises en mémoire cache.
no-cache
Aucun cache dans l'intégralité de chemin d'accès ne doit maintenir une copie mise en cache de la réponse. Cela vous permet de spécifier que la requête suivante pour le même contenu sera obligatoirement renvoyée par le serveur et non par un proxy ou le cache du navigateur.
no-store
Empêche le stockage non volatile (par exemple : sur disque) de la donnée.
no-transform
La directive no-transform indique au cache qu'il ne doit pas transformer le corps du message qu'il reçoit.
En effet, lorsque le cache a derrière lui une ligne à faible débit, il peut être intéressant de compresser toutes les réponses qu'il envoie (Content-Encoding: gzip). La directive no-transform interdit ce genre d'initiative.
max-age
Cette directive indique au cache que le client veut un document dont la fraîcheur est au maximum l'âge indiqué en seconde.
Cache-Control: max-age=600
Avec cette directive, le cache est sollicité pour renvoyer un document qui a été produit il y a au plus 10 minutes (en-tête Date). Sinon le serveur d'origine est contacté pour obtenir une version plus récente.
Si la directive max-age apparaît dans une réponse, elle outrepasse l'en-tête Expires.
max-stale
Cette directive max-stale doit être suivie d'une durée en seconde. Elle précise le temps de mise en cache de l'élément. Lorsque le délai est dépassé, l'équipement doit rafraichir son cache. Voici des exemples d'utilisation, si la requête contient l'en-tête :
Cache-Control: max-stale=3600
le cache peut renvoyer l'élément mis en cache d'il y a moins d'une heure.
Cache-Control: max-stale=0
le cache doit constamment être rafraîchi.
min-fresh
min-vers
must-revalidate
force une reconnexion au serveur avec un If-Modified-Since et doit provoquer une erreur 505 si la page a disparu.
proxy-revalidate
only-if-cached
- Portail de l’informatique
Catégories : Mémoire informatique | HTTP
Wikimedia Foundation. 2010.