HTTP Cache : Last-Modified, cache-busting

En résumé : forcez un cache court ou faites du cache-busting

Préambule : recharger une page ?

Bouton ↻ Force-reload

NB : les requêtes asynchrones (notamment Ajax) sont toujours prises en cache.

Cache HTTP

Avec Cache-Control, c'est globalement clair (NB : remplace Pragma et Expires) :

... mais en l'absence de Cache-Control (et de Expires) ?

Contenu dynamique

Possibilité bien sûr d'ajouter des headers Cache-Control.

Last-Modified et heuristique 10% par l'exemple

Renater utilise le logo « » sur son site principal. Il peut aussi l'utiliser sur d'autres sites pour espérer centraliser cette resource.

Solutions :

Fichiers statiques

Dans la majorité des cas, Last-Modified est renvoyé, sans permettre de configurer un temps de cache 😢 Certains font des choix par défaut intéressant D'autres framework laissent le programmeur choisir

Forcez une durée de mise en cache !

avec les directives "expires" de Nginx/Apache, il y a le risque de forcer le cache pour une réponse qui ne serait pas caché sans cela.

Faites du cache-busting !

Exemples

Solutions techniques

Détails

Divers

Cache serveur

Apache/Nginx/HAProxy/Træfik/Envoy/... permettent la mise en cache.

Pas évoqué

Réfs :

Conclusion

Forcez une durée de mise en cache

Faites du cache-busting