Notre site Web d’alphabétisation pour les enfants handicapés pose des problèmes de connexion à certains utilisateurs. Vous pouvez visiter le site à l’adresse http://tarheelreader.org/
. Si vous vous connectez à https://tarheelreader.org/login/
, puis que vous revenez à la page de connexion, vous devriez voir un message de déconnexion. Mais Chrome met la page en cache et renvoie à la place la page de connexion d'origine. Les en-têtes sont:
Cache-Control:no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0
Content-Encoding:gzip
Content-Type:text/html; charset=UTF-8
Date:Thu, 26 Jan 2017 22:55:55 GMT
Expires:Wed, 11 Jan 1984 05:00:00 GMT
Link:<https://tarheelreader.org/?p=110663>; rel=shortlink
Pragma:no-cache
Server:nginx
Vary:Accept-Encoding
X-UA_Compatible:IE=Edge,chrome=1
Quels sont à peu près tous les moyens que je pourrais trouver pour dire ne cache pas cette page. Mais l'onglet Réseau dans le débogueur affiche la page provenant du cache disque. Si je désactive le cache avec la case à cocher dans le débogueur, les choses fonctionnent comme il se doit.
Mise à jour Si je configure la version sandbox du site pour utiliser HTTPS, seul le problème disparaît. Peut-être que c'est quelque chose à propos du passage de HTTP à HTTPS et vice-versa?
no-cache
n'est pas aussi fort que no-store
. documentation de Chrome indique que no-cache
indique un document réutilisable, tandis que no-store
indique qu'il ne devrait pas être réutilisé.
Sur la base de ces informations, votre en-tête Cache-Control
devrait simplement être:
Cache-Control: no-store
Les valeurs supplémentaires qu’il contient peuvent laisser Chrome choisir ce qu’il souhaite honorer.