HTTP - Mise en cache

HTTP est généralement utilisé pour les systèmes d'information distribués, où les performances peuvent être améliorées par l'utilisation de caches de réponse. Le protocole HTTP / 1.1 comprend un certain nombre d'éléments destinés à faire fonctionner la mise en cache.

L'objectif de la mise en cache dans HTTP / 1.1 est d'éliminer le besoin d'envoyer des requêtes dans de nombreux cas, et d'éliminer le besoin d'envoyer des réponses complètes dans de nombreux autres cas.

Les mécanismes de cache de base dans HTTP / 1.1 sont des directives implicites vers les caches où le serveur spécifie les délais d'expiration et les validateurs. Nous utilisons leCache-Control en-tête à cet effet.

le Cache-ControlL'en-tête permet à un client ou serveur de transmettre une variété de directives dans les demandes ou les réponses. Ces directives remplacent généralement les algorithmes de mise en cache par défaut. Les directives de mise en cache sont spécifiées dans une liste séparée par des virgules. Par exemple:

Cache-control: no-cache

Les directives de requête de cache suivantes peuvent être utilisées par le client dans sa requête HTTP:

SN Directive et description de la demande de cache
1 no-cache

Un cache ne doit pas utiliser la réponse pour satisfaire une demande ultérieure sans une revalidation réussie avec le serveur d'origine.

2 no-store

Le cache ne doit rien stocker sur la demande du client ou la réponse du serveur.

3 max-age = seconds

Indique que le client est prêt à accepter une réponse dont l'âge n'est pas supérieur à la durée spécifiée en secondes.

4 max-stale [ = seconds ]

Indique que le client est prêt à accepter une réponse qui a dépassé son délai d'expiration. Si des secondes sont données, elles ne doivent pas être expirées de plus de ce temps.

5 min-fresh = seconds

Indique que le client est prêt à accepter une réponse dont la durée de vie d'actualisation n'est pas inférieure à son âge actuel plus la durée spécifiée en secondes.

6 no-transform

Ne convertit pas le corps de l'entité.

sept only-if-cached

Ne récupère pas de nouvelles données. Le cache peut envoyer un document uniquement s'il est dans le cache et ne doit pas contacter le serveur d'origine pour voir si une copie plus récente existe.

Les directives de réponse de cache suivantes peuvent être utilisées par le serveur dans sa réponse HTTP:

SN Directive et description de la réponse du cache
1 public

Indique que la réponse peut être mise en cache par n'importe quel cache.

2 private

Indique que tout ou partie du message de réponse est destiné à un seul utilisateur et ne doit pas être mis en cache par un cache partagé.

3 no-cache

Un cache ne doit pas utiliser la réponse pour satisfaire une demande ultérieure sans une re-validation réussie avec le serveur d'origine.

4 no-store

Le cache ne doit rien stocker sur la demande du client ou la réponse du serveur.

5 no-transform

Ne convertit pas le corps de l'entité.

6 must-revalidate

Le cache doit vérifier l'état des documents périmés avant de l'utiliser et les documents expirés ne doivent pas être utilisés.

sept proxy-revalidate

La directive proxy-revalidate a la même signification que la directive must-revalidate, sauf qu'elle ne s'applique pas aux caches d'agent utilisateur non partagés.

8 max-age = seconds

Indique que le client est prêt à accepter une réponse dont l'âge n'est pas supérieur à la durée spécifiée en secondes.

9 s-maxage = seconds

L'âge maximum spécifié par cette directive remplace l'âge maximum spécifié par la directive max-age ou par l'en-tête Expires. La directive s-maxage est toujours ignorée par un cache privé.