2010-07-19 4 views
0

Lorsque vous utilisez Cache-Control et Expires tête de sorte qu'une page n'expirera en 10 ans:Pour que le contrôle de cache expire dans 10 ans, utilise doc.css? V = 128 exactement le même que doc_v128.css?

Cache-Control: max-age=315360000 
Expires: Sun, 19 Jul 2020 18:06:32 GMT 

sera en utilisant la ligne 1 ont un résultat identique en ligne 2?

<link href="/public/doc.css?v=128" ... > 

<link href="/public/doc_v128.css" ... > 

Je pensais peut-être un navigateur prendra la ?v=128 comme contenu un peu plus dynamique et le recharger avant l'expiration de 10 ans?

Sinon, les deux fichiers expireront dans 10 ans et quand il y a des changements au CSS, le 128 peut être mis à jour à 129 et il sera chargé à coup sûr et aura une nouvelle date d'expiration de 10 ans?

(en va de même pour les fichiers javascript .js)

Répondre

4

En utilisant une nouvelle valeur dans la chaîne de requête peut travailler contre vous. Selon Page Speed ​​Optimize caching Performance des meilleures pratiques de Google:

Ne pas inclure une chaîne de requête dans l'URL pour les ressources statiques

La plupart des proxies, notamment Squid jusqu'à par la version 3.0, ne pas mettre en cache ressources avec un "?" dans leur URL même si un en-tête Cache-control: public est présent dans la réponse. Pour activer la mise en cache proxy pour ces ressources, supprime les chaînes de requête des références aux ressources statiques, et à la place encoder les paramètres dans le fichier eux-mêmes.

En outre, vous pouvez reconsidérer 10 ans. Selon la section Header Field Definitions > Expires du RFC 2616, un an est le maximum.

Pour marquer une réponse comme «n'expire jamais, » un serveur d'origine envoie une Expires Date environ un an à partir du moment la réponse est envoyée. Serveurs HTTP/1.1 NE DEVRAIT PAS envoyer les dates d'expiration plus que d'un an dans le futur.

+0

pourquoi le "ne devrait pas"? Par exemple, dans le livre High Performance Web Sites par un chef de la technologie dans Yahoo, il décrit une utilisation pour définir l'expiration à 10 ans, en utilisant l'en-tête 'Expires' et' Cache-Control max-age' –

+0

(le nom Steve Sounders) –

+2

"Étant donné la fréquence à laquelle les utilisateurs vident leur cache et remplissent leur cache, la définition d'une date d'expiration d'un an ou de dix ans dans le futur ne changera pas grand-chose" - http://developer.yahoo. net/blog/archives/2007/05/high_performanc_2.html –

Questions connexes