web-dev-qa-db-fra.com

Combien de temps une redirection 302 est-elle enregistrée dans le navigateur?

En raison d'une mauvaise configuration de notre serveur Web, le domaine principal a envoyé une redirection 302 vers un nouvel emplacement. Nous avons résolu ce problème. Lorsque vous videz le cache du navigateur, tout fonctionne correctement maintenant.

Pour le client "normal" qui ne vide pas son cache: combien de temps la redirection 302 est-elle conservée dans le navigateur?

Je recherche les temps de cache spécifiques (le cas échéant) pour chacun des principaux navigateurs (Chrome, Firefox, Safari, Opera, Edge, IE 12) avec les paramètres par défaut.

22
Ole Albers

Il ne devrait pas du tout être mis en cache, à moins qu'un en-tête Cache-Control ou Expires soit également renvoyé par le serveur Web. Selon RFC 2616, section 10.3.3 302 trouvé

La ressource demandée réside temporairement sous un autre URI. Étant donné que la redirection peut être modifiée à l'occasion, le client DEVRAIT continuer à utiliser l'URI de demande pour les futures demandes. Cette réponse ne peut être mise en cache que si elle est indiquée par un champ d'en-tête Cache-Control ou Expires. 

26
Jon Lin

La norme référencée par Jon Lin utilise ici "SHOULD", qui est pas aussi fort que "MUST" dans le jargon RFC. Ce n'est pas simplement une distinction théorique; Cloudflare, par exemple, ne cache] [redirections en cache :

Si aucun en-tête de cache n'est fourni (pas de Cache-Control ni Expires) et le url est cacheable (.jpg, .css, .js, etc.) puis CloudFlare met en cache les deux 301 et 302s. Nous mettons en cache 301 pendant quelques heures et 302s pour un période plus courte (~ 20 minutes).

Vous devez donc vous assurer que vous pouvez le gérer ou utiliser des en-têtes explicites (par exemple, Cache-Control: private, no-cache) pour diriger les navigateurs et les intermédiaires contre la mise en cache.

12
mahemoff

À l'aide de l'outil Redirect Caching Tests de Steve Sounder (merci @LeonidVasilev), il semble que les résultats ne sont peut-être pas ceux attendus. En l'absence d'en-têtes ou de cookies expirés, les résultats sont les suivants:

Chrome 71: Non mis en cache ✔
Firefox 64: mis en cache
Safari 12: mis en cache 

Donc, malgré ce que RFC 2616, section 10.3.3 302 Found déclare que tous les navigateurs ne suivent pas ces instructions ou ce que l'on pourrait considérer comme un comportement attendu :(

2
Chuck Le Butt

Firefox

Il ne doit pas être mis en cache, par bug 812167

0
benc

Cela dépend des paramètres de mise en cache du navigateur de chaque client: IE a l'option de ne "JAMAIS" vérifier les nouvelles pages, cela a le même effet sur les redirections.
Et les réglages "automatiques" d’AFAIR IE (par défaut?) N’est pas beaucoup mieux.

0
Germann Arlington