Comment puis-je empêcher Chrome d'envoyer Cache-control: max-age = 0 lorsque je clique sur Entrée?

27

Je suis sur une connexion légèrement instable et j'essaie d'améliorer mon expérience de navigation avec l'utilisation d'un proxy local. Selon mes recherches , cependant, si je clique sur `` entrer '' dans mon navigateur sur une URL existante, il enverra un en- Cache-Control: max-age=0tête au proxy, qui, à son tour, fera des allers-retours au serveur pour revalider le contenu.

Je ne veux pas particulièrement cela; si l'objet est périmé, le cache le récupérera, mais s'il n'est pas périmé, je ne vois pas pourquoi je voudrais que l'objet soit revalidé à chaque fois. Si je soupçonne que la page est ancienne, j'ai shift-F5 et je n'ai pas peur de l'utiliser.

Alors, y a-t-il un accordable quelque part dans les coulisses de Chrome qui désactivera ce comportement ennuyeux?

womble
la source

Réponses:

25

J'ai constaté que si vous accédez à une page via votre bouton de retour ou un lien, Chrome n'envoie pas l'en-tête max-age = 0 et utilisera généralement (si le serveur Apache de l'autre côté est configuré pour la mise en cache) un version en cache de la page.

Cependant, lorsque vous entrez l'URL (par exemple www.example.com/abcd/index.html) directement dans la barre d'adresse, puis appuyez sur Return, Chrome enverra toujours l'en- Cache-Control: max-age=0tête, ce qui contourne la mise en cache.

Svenny
la source
5

Il est possible de modifier les en-têtes que Chrome envoie à un serveur Web à l'aide de scripts utilisateur (ala greasemonkey) ou d'extensions. Voici une extension qui devrait fonctionner: ModHeader

Selon l'introduction et la capture d'écran, l'ajout d'un en-tête tel que cache-control max-age=1000devrait être relativement simple. Il prend également en charge les listes blanches de domaine pour empêcher l'envoi d'en-têtes à des sites Web spécifiques. Vous devrez peut-être activer certaines expériences dans les indicateurs chrome: // pour ce travail.

démonstration d'ajout d'en-têtes

Jeremy W
la source
1

Les navigateurs se comportent en fonction des en-têtes de réponse qu'ils reçoivent. Si le navigateur reçoit des en-têtes de réponse comme

Cache-Control: private
Expires: Thu, 01 Jan 1970 00:00:00 UTC

ensuite, le navigateur demanderait toujours avec Cache-Control: max-age=0. Cela se produit généralement avec le conteneur Tomcat, où le BaseAuthenticatorajoute ces en-têtes de réponse lorsque la variable disableProxyCachingest vraie. Si vous rencontrez un problème similaire, vous pouvez visiter ce lien pour trouver une solution.

J'espère que cela aide dans une certaine mesure :)

Sunil Dabburi
la source