Faut-il revalider les en-têtes de cette demande?

J’ai remarqué que chrome mettait en cache un fichier vidéo. Je l’ai remplacé par un autre sur le serveur et chrome a continué à servir l’ancien du cache (en utilisant JW flash player 5)

Les en-têtes de la requête ressemblent à ceci:

joe@joe-desktop:~$ wget -O - -S --spider http://www.2xfun.de/files_geheimhihi14/20759.mp4 Spider mode enabled. Check if remote file exists. --2011-05-15 22:40:56-- http://www.2xfun.de/files_geheimhihi14/20759.mp4 Resolving www.2xfun.de... 213.239.214.112 Connecting to www.2xfun.de|213.239.214.112|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Date: Sun, 15 May 2011 20:40:56 GMT Server: Apache Last-Modified: Sun, 15 May 2011 20:37:59 GMT ETag: "89b38-3bb227-4a35683b477c0" Accept-Ranges: bytes Content-Length: 3912231 Cache-Control: max-age=29030400, public, must-revalidate Expires: Sun, 15 Apr 2012 20:40:56 GMT Connection: close Content-Type: video/mp4 Length: 3912231 (3.7M)  Remote file exists. 

J’utilise mod_headers et mod_expires dans apache2 comme ceci:

  ExpiresDefault A29030400 Header append Cache-Control "public, must-revalidate"  

Est-ce que j’ai épelé revalider mal ou quelque chose?

modifier:

Pour que le cas d’utilisation soit clair: je veux que les fichiers soient mis en cache, car ils sont plutôt volumineux et je veux économiser de la bande passante. Mais d’un autre côté, je souhaite que les fichiers soient à nouveau validés. Ainsi, le client effectue une requête HEAD et vérifie si le contenu a changé (ce à quoi l’etag est destiné) et ne récupère que si nécessaire.

Votre problème est que must-revalid ne se déclenche qu’une fois qu’une entrée de cache n’est plus fraîche, mais vous avez marqué la réponse comme pouvant être mise en cache pendant 29 millions de secondes. ‘Cache-Control: max-age = 0, must-revalid’ peut être plus proche de ce que vous voulez, si vous souhaitez autoriser la mise en cache mais nécessite une revalidation à chaque utilisation.