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 curl
et l' -I
option 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 curl
page de manuel officielle, l' -I
option 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.com
et 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' -L
option (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 Permanently
en- 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 -I
c'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.