Je souhaite mettre en œuvre ETag
basé cache-control
, et je me demande combien de temps ETags
sont stockés dans un navigateur et si elles peuvent être conservées plus longtemps que la session en cours.Comment et pour combien de temps les navigateurs stockent-ils Etags?
J'ai le réglage du serveur et l'envoi ETags
pour les réponses correctement, et j'envoie des demandes du navigateur avec jQuery.ajax
.
Le système fonctionne correctement, répondant à la appropriée 304 réponse si l'en-tête Not-Modified
(précédente ETag
) correspond au produit ETag
sur le serveur. Cela fonctionne très bien pour la session en cours, mais lorsque je ferme le navigateur et le rouvre, l'en-tête Not-Modified
n'est plus envoyé par jQuery.
Je me demande s'il y a des méthodes que je pourrais utiliser pour déclencher le comportement par défaut du navigateur, et envoyer l'en-tête Not-Modified
des réponses (le cas échéant), sans régler manuellement l'en-tête dans la requête ajax ou le stockage du ETag
dans localStorage
/indexedDb
.
si un 'etag' n'est pas envoyé correctement après une session est fermée, peut-être vous n'êtes pas expédiez le droit' têtes expires'. –
Videz-vous le cache à la fin de la fenêtre? Le 'ETag' est stocké avec le fichier dans le cache. Donc, si le navigateur efface les éléments hors du cache, 'ETag' est également perdu. Toutefois, si le fichier est toujours dans le cache, le navigateur envoie le 'ETag' avec la requête pour indiquer au serveur qu'il existe déjà un fichier avec ce' ETag' dans le cache. –