Apte à être mis en cache

Une réponse apte à être mise en cache (cacheable) est une réponse HTTP qui peut être mise en cache, qui est stockée pour être récupérée et utilisée plus tard, en enregistrant une nouvelle requête sur le serveur. Toutes les réponses HTTP ne peuvent pas être mises en cache, les contraintes suivantes sont requises pour qu'une réponse HTTP soit mise en cache :

  • La méthode utilisée dans la requête peut elle-même être mise en cache, c'est une méthode GET ou HEAD. Une réponse de la méthode POST peut aussi être mise en cache si le rafraîchissement est indiqué, mais c'est rarement implémenté. D'autres méthodes comme PUT ou DELETE ne peuvent pas être mises en cache et leur résultat pas davantage.
  • Le code d'état de la réponse est connu par la mise en cache de l'application et il est considéré comme apte à être mis en cache. Les codes d'état suivants peuvent être mis en cache : 200, 203, 204, 206, 300, 301, 404, 405, 410, 414, et 501.
  • Il n'y a pas d'en-tête spécifique dans la réponse, comme Cache-Control, qui empêche la mise en cache.

Notez que certaines requêtes / réponses ne pouvant être mises en cache à un URI spécifique peuvent invalider des réponses précédemment mises en cache sur le même URI. Par exemple, un PUT à pageX.html invalidera toutes les requêtes GET ou HEAD dans le même URI.

Lorsque les deux, la méthode de la requête et l'état de la réponse, peuvent être mis en cache, la réponse à la requête peut être mise en cache :

GET /pageX.html HTTP/1.1
(…)

200 OK
(…)

Une requête PUT ne peut pas être mise en cache. De plus, elle invalide les données mises en cache pour une requête au même URI via HEAD ou GET :

PUT /pageX.html HTTP/1.1
(…)

200 OK
(…)

Un en-tête spécifique Cache-Control dans la réponse peut empêcher la mise en cache :

GET /pageX.html HTTP/1.1
(…)

200 OK
Cache-Control: no-cache
(…)

Voir aussi

Culture générale

  • Définition de cacheable dans la spécification HTTP.

Références techniques

  • Description de méthodes courantes pouvant être mises en cache : GET, HEAD
  • Description de méthodes courantes ne pouvant pas être mises en cache : PUT, DELETE et souvent POST