Existe-t-il un moyen de forcer Firefox à NE PAS mettre en cache les redirections (301 et 302)?

11

Je suis développeur Web, et je dois souvent créer ou modifier une redirection 301 ou 302. Il est fastidieux de tester les modifications immédiates dans Firefox car il met en cache les redirections, donc si je change la redirection côté serveur, puis une actualisation matérielle, l'ancienne redirection est mise en cache, donc la seule façon de tester la nouvelle est de supprimer mon cache ou démarrer une session de navigateur privée.

Cela étant dit, ce n'est pas particulièrement difficile à contourner, mais c'est ennuyeux, surtout quand j'oublie de le faire, et il semble que ma nouvelle redirection ne fonctionne pas, jusqu'à ce que je me souvienne de supprimer le cache ou de démarrer une nouvelle session privée .

Je comprends pourquoi il est avantageux de mettre en cache les redirections pour une utilisation normale, mais je voudrais désactiver le comportement à des fins de débogage.

chiliNUT
la source

Réponses:

8

Vous pouvez définir une option pour désactiver la consultation du cache si le panneau de la boîte à outils du développeur est ouvert (comme cela se produit avec F12).

Pour définir cette option:

  1. Sur n'importe quelle page, appuyez sur F12pour ouvrir le panneau de la boîte à outils du développeur.
  2. Cliquez sur l'icône d'engrenage en haut à droite de ce panneau.
  3. Là, cochez "Paramètres avancés → Désactiver le cache (lorsque la boîte à outils est ouverte)".

Les redirections de cache seront toujours mises en cache à partir des visites sans le panneau de la boîte à outils du développeur ouvert, mais ce cache n'est pas consulté et n'est pas mis à jour tant que la boîte à outils du développeur est ouverte. Ainsi, vous ne forcez que temporairement Firefox à ne pas mettre en cache les redirections ou à servir les redirections à partir du cache, mais cela pourrait être suffisant pour votre cas d'utilisation.

Vérifié dans Firefox 41. Adapté de la réponse de Ryan Bemrose à une autre question.

tanius
la source
2

Je comprends parfaitement pourquoi il est avantageux de mettre en cache les redirections dans 99% des situations, mais est-il possible de désactiver ce comportement?

Eh bien, si vous faites cela du point de vue du développement d'un serveur Web, alors s'attendre à ce que le comportement du "cache à tout prix" du navigateur soit modifié pour vos besoins en "ajustements de développement sans fin" est la mauvaise façon d'attaquer cette bête. Lorsque vous déboguez des redirections de serveur Web, vous devez vous concentrer sur la vérification de la sortie d'en-tête et non sur la sortie de rendu pleine page fournie par les navigateurs.

Donc, je recommanderais plutôt d'apprendre à utiliser curlet l' -Ioption de la ligne de commande pour renvoyer uniquement les en-têtes, ce qui est très utile pour déboguer les redirections 301 et 302. Depuis la ligne de commande. Comme expliqué dans la curlpage de manuel officielle, l' -Ioption est:

-Je me dirige

(HTTP / FTP / FILE) Récupérez uniquement l'en-tête HTTP! Les serveurs HTTP disposent de la commande HEAD qui permet de n'obtenir que l'en-tête d'un document. Lorsqu'elle est utilisée sur un fichier FTP ou FILE, curl affiche uniquement la taille du fichier et l'heure de la dernière modification.

Par exemple, faites un curl -I google.comet la sortie ressemblera à ceci:

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:37:42 GMT
Expires: Mon, 11 May 2015 04:37:42 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5

Et si vous vouliez suivre toute la chaîne de redirection via des en-têtes, alors ajoutez l' -Loption (aka:) --locationà la commande comme ceci:

curl -I -L google.com

Et la sortie de cette commande suivant la chaîne de redirection d'emplacement serait quelque chose comme ceci:

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: Mon, 11 May 2015 04:48:14 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5

HTTP/1.1 200 OK
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=69d90e4d7a0fcbbb:FF=0:TM=1428727694:LM=1428727694:S=1xqS-toEoa5saQ7n; expires=Mon, 10-Apr-2017 04:48:14 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=pkHjv88MsTB_eB1OqqcMm03kTkFNOSaN4ZEiE5iGViEt7AiJWBc6R-0qJ5s1xu3i5Peg5aHOBHyr7n4-oAxyEE2cL_dBPRLYODst0H-Ztfgrf_6LYXXlix9eghSB8Hzc; expires=Sun, 11-Oct-2015 04:48:14 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
Transfer-Encoding: chunked
Accept-Ranges: none
Vary: Accept-Encoding

Notez la réponse d' HTTP/1.1 301 Moved Permanentlyen- tête ainsi que Location: http://www.google.com/. Si votre objectif de développement Web est de tester des choses comme les règles de réécriture Apache et les redirections, curl -Ic'est le meilleur outil pour vous aider à voir ce que font vos réglages.

Et après que ces ajustements soient finalisés et perfectionnés, effectuez une dernière analyse dans un véritable navigateur pour voir tout prendre vie.

JakeGould
la source
2

Dans Firefox Firebug, sous l' Netonglet, il y a une option appelée "Désactiver le cache". J'allume cela lorsque je fais des tests de redirection, et je l'ai désactivé sinon.

entrez la description de l'image ici

chiliNUT
la source
1

Accédez à about:configet définissez les deux browser.cache.disk.enableet browser.cache.memory.enablefalse. Cela revient à cocher "Désactiver le cache du navigateur".

Qian
la source