Publier des images qu'un proxy partagé peut réutiliser
Donnez aux réponses d'image réutilisables publiquement une durée de fraîcheur explicite et des validateurs, puis interprétez un rechargement du navigateur séparément de la réutilisation normale du cache.
Pour une réponse d'image transportée par un cache partagé visible en HTTP, publiez une durée de vie explicite et un validateur. Lorsque l'image peut être réutilisée sans risque entre utilisateurs, voici des en-têtes de réponse d'exemple :
Cache-Control: public, max-age=604800
ETag: "image-v4"
La durée est en secondes ; 604800 correspond à une semaine. N'utilisez public que pour du contenu destiné à être réutilisé entre utilisateurs.
Si le navigateur et le proxy partagé ont besoin de durées différentes, s-maxage fournit la durée du cache partagé. Par exemple, max-age=3600 avec s-maxage=604800 donne au cache partagé la période de fraîcheur la plus longue.
Expires est une date, pas une durée
Expires prend un horodatage au format date HTTP. max-age remplace ce champ, et s-maxage est prioritaire pour les caches partagés. Générez toute date Expires au moment de produire la réponse.
Un rechargement peut demander une validation
Une requête contenant Cache-Control: no-cache exige une validation réussie auprès de l'origine avant qu'une réponse stockée soit réutilisée. Cela peut se produire même lorsque la politique de fraîcheur ordinaire de la réponse autoriserait autrement la réutilisation.
Le validateur permet au cache de vérifier efficacement une image inchangée. Une réponse 304 peut confirmer la représentation stockée sans retransmettre les octets de l'image depuis l'origine. Le trafic vers l'origine ne signifie donc pas en soi que l'objet en cache a été écarté.
Comparez la réutilisation normale et les rechargements explicites lorsque vous examinez la politique.