Expires
Utilisation
L’en-tête Expires fournit un horodatage absolu indiquant le moment où une réponse mise en cache perd sa fraîcheur. Les caches comparent cet horodatage à l’heure courante pour décider si la copie stockée est encore utilisable.
La directive max-age de Cache-Control prévaut sur Expires lorsque les deux sont présents. Comme max-age utilise une valeur relative en secondes au lieu d’une Date absolue, la directive évite les problèmes de décalage d’horloge entre les serveurs et les caches. Les politiques de mise en cache modernes s’appuient sur Cache-Control comme mécanisme de fraîcheur principal, Expires servant de repli pour les caches plus anciens dépourvus de prise en charge de max-age.
Une valeur de 0 ou une date invalide signale que la réponse est déjà périmée. Les caches considèrent immédiatement l’entrée comme expirée, ce qui force une revalidation ou une nouvelle récupération à la requête suivante.
L’horodatage suit le même format IMF-fixdate que celui utilisé par l’en-tête Date :
Expires: <day-name>, <day> <month> <year>
<hour>:<minute>:<second> GMT
Remarque
Lorsque Cache-Control: max-age est présent dans la même réponse, la valeur d’Expires est ignorée. Préférez max-age pour les nouvelles implémentations.
Exemple
Une réponse expirant un mercredi à 08:00 UTC. Tout cache détenant cette réponse après l’heure indiquée considère la copie comme périmée.
Expires: Wed, 04 Jun 2025 08:00:00 GMT
Une réponse marquée comme déjà expirée. Définir la valeur à 0 force les caches à revalider à chaque requête.
Expires: 0
Un en-tête Expires associé à Cache-Control pour la rétrocompatibilité. La directive max-age l’emporte, donnant à la réponse une durée de fraîcheur d’une heure indépendamment de l’horodatage Expires.
Cache-Control: max-age=3600
Expires: Thu, 01 Jan 1970 00:00:00 GMT