8
votes

Que fait l'en-tête ("expire: 0")?

Quelqu'un peut-il expliquer cela?


1 commentaires

Il est probablement destiné à dire au navigateur / client les règles de la mise en cache de la page. Mais il est basé sur http 1.0. Il existe des en-têtes de contrôle de cache plus robustes introduits dans HTTP 1.1 qui devrait également être défini.


5 Réponses :


-1
votes

Définit l'en-tête de l'expiration du cache. Cela indique au navigateur combien de temps ils sont autorisés à le garder en cache avant de ne pas le chercher.

Je crois que 0 signifie qu'il n'expire jamais, ce qui peut causer toutes sortes de problèmes. Je crois que l'unité est des secondes. D'autre part, cela pourrait signifier qu'il ne peut pas être mis en cache.


0 commentaires

5
votes

Comment fonctionne la coaching (entre autres) est que vous envoyez une en-tête au navigateur en disant lorsque le contenu de la page expirera. Cela signifie que si vous envoyez une en-tête comme: xxx

le contenu ne "expire" jusqu'à cette date. Le navigateur peut ensuite utiliser des techniques de mise en cache pour servir la page localement à partir de votre navigateur au lieu de devoir télécharger tout le contenu à nouveau.

Lorsque vous définissez l'expiration sur 0, il garantit la prochaine fois que le navigateur charge la Page, il téléchargera le contenu, vous permettra ainsi de vous préparer aux secondes données. Cependant, comme vous pouvez le voir d'autres réponses, vous ne devriez pas envoyer 0 pour éviter la mise en cache, mais envoie plutôt une date dans le passé.


0 commentaires

7
votes

généralement utilisé pour empêcher la mise en cache. Cependant, ce document vous fournira probablement une meilleure explication:

http://download.oracle. COM / DOCS / CD / E13158_01 / ALUI / WCI / DOCS103 / DEVGUIDE / TSK_PAGELETS_STEGLETTINGCACHING_HTTPEXPIRES.HTML

pour citer:

Ne jamais utiliser expire = 0 pour éviter mise en cache. L'en-tête expiré est envoyé par le serveur distant et traversé au navigateur par le serveur de portail. Sauf si le temps sur les trois machines est synchronisé, un en-tête expire = 0 peut renvoyer à tort de contenu mis en cache. Pour résoudre ce problème, définissez l'expiration en-tête à une date fixe qui est définitivement dans le passé.


1 commentaires

J'ai peur que ce n'était pas correct. Voir Stackoverflow.com/questions/ 11357430 / ... pour une meilleure explication.



-1
votes

Certains navigateurs rechargent toujours des feuilles de style, des javascripts et d'autres fichiers de change Seldomnly, ce qui provoque des délais désagréables lors du chargement d'un site Web (Safari sur MacOS est un exemple)

Pour dire au navigateur de garder des fichiers dans le cache pendant au moins une journée, vous pouvez utiliser Cela a le gentil siéfeuf de dire à un autre navigateur qui ne rafraîchit jamais les pages pour les rafraîchir au moins une fois par jour.


0 commentaires

3
votes

"Expire: 0" signifie qu'un cache traitera toujours cette entrée comme étant rassis (c'est-à-dire que cela devra la revalider d'abord avant de le renvoyer à un client).

de la définition de l'en-tête expiré dans le HTTP / 1.1 RFC ( http://www.w3.org/protocols/rfc2616/rfc2616-sec14.html#sec14.21 ): "Les clients HTTP / 1.1 et les caches doivent traiter d'autres formats de date non valides, notamment la valeur" 0 ", comme dans le passé (c'est-à-dire" déjà expiré ")."


0 commentaires