Ich verstehe vollkommen, warum es in 99% der Situationen vorteilhaft ist, Weiterleitungen zwischenzuspeichern, aber gibt es trotzdem eine Möglichkeit, dieses Verhalten zu deaktivieren?
Wenn Sie dies unter dem Gesichtspunkt der Webserverentwicklung tun, ist es der falsche Weg, dieses Biest anzugreifen, wenn Sie erwarten, dass das Verhalten des Browsers um jeden Preis für Ihre Anforderungen an die „endlose Entwicklungsoptimierung“ geändert wird. Wenn Sie Webserver-Weiterleitungen debuggen, müssen Sie sich darauf konzentrieren, die Header-Ausgabe und nicht die von Browsern bereitgestellte Ausgabe für das Rendern ganzer Seiten zu überprüfen .
Daher würde ich stattdessen empfehlen, die Verwendung curl
und die -I
Option über die Befehlszeile zu lernen, nur Header zurückzugeben, was für das Debuggen von 301- und 302-Weiterleitungen sehr nützlich ist. Über die Befehlszeile. Wie in der offiziellen curl
Manpage erläutert , ist die -I
Option:
-Ich / - Kopf
(HTTP / FTP / FILE) Nur den HTTP-Header abrufen! HTTP-Server verfügen über den Befehl HEAD, mit dem nur der Header eines Dokuments abgerufen wird. Bei Verwendung in einer FTP- oder FILE-Datei zeigt curl nur die Dateigröße und die letzte Änderungszeit an.
Wenn Sie beispielsweise a curl -I google.com
ausführen, wird die Ausgabe ungefähr so aussehen:
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
Wenn Sie die gesamte Umleitungskette über Header verfolgen möchten, fügen Sie dem Befehl die folgende -L
Option (auch bekannt als :) hinzu --location
:
curl -I -L google.com
Und die Ausgabe dieses Befehls nach der Standortumleitungskette wäre ungefähr so:
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
Beachten Sie die Header-Antwort von HTTP/1.1 301 Moved Permanently
sowie Location: http://www.google.com/
. Wenn Ihr Webentwicklungsziel darin besteht, Dinge wie Apache-Umschreiberegeln und Weiterleitungen zu testen, curl -I
ist dies das beste Tool, mit dem Sie sehen können, was Ihre Optimierungen bewirken.
Und nachdem diese Optimierungen abgeschlossen und perfektioniert wurden, führen Sie einen letzten Lauf in einem echten Browser durch, um zu sehen, wie alles zum Leben erweckt wird.