Comment prévenir la requête qui retourne 304

Quand un navigateur de ne PAS faire une demande au serveur pour un fichier?

En d'autres termes, j'ai un fichier JavaScript être servi. Sa tête de réponse HTTP est un ETag, Cache-Control: public, et Expires: Tue, 19 Jan 2038 03:14:07 GMT.

Le serveur retourne un 304 après le cache du navigateur a été amorcée.

Ma question est, pourquoi le navigateur même vérifier avec le serveur et l'obtention d'un 304 en premier lieu? Je ne veux pas le navigateur d'aller demander si il y a une nouvelle version, il doit charger directement à partir de la mémoire cache du navigateur sans vérification des modifications avec le serveur de servir le script.

Quelle combinaison d'-têtes de réponse HTTP accomplit cela?

  • Qui est le réglage de l'en-tête d'expiration? Selon cette page, l'en-tête d'expiration ne doit pas être plus dans l'avenir de plus d'un an. D'autre part, selon cette page le maximum pris en charge date est Sun, 17-Jan-2038 19:14:07 GMT since that’s the maximum value supported by the 32 bit Unix time/date format. Votre date est passé par un couple de jours, peut-être que c'est la raison pour...
  • le RFC que vous avez lié à est obsolète (note la bannière du haut est tools.ietf.org/html/rfc2616; vous devriez toujours vérifier les Rfc pour l'obsolescence sur tools.ietf.org avant de supposer qu'ils représentent spec actuelle). Cependant, votre point est toujours d'actualité. Alors que la actuellement spec, RFC 7234, a supprimé les conseils contre la fixation des dates d'expiration au-delà de 1 an à l'avenir, il n'avertissent que les dates dans le très lointain avenir devrait être évitée afin d'éviter les débordements.
  • Merci pour le pointeur de tools.ietf.org, je vais devoir ajouter que, en tant que signet. À propos de l'en-tête expires: je serais surpris si la date a été la cause du problème, mais depuis que je l'ai trouvé, je pensais que je devrais le mentionner...
InformationsquelleAutor core | 2014-10-02