Kann ich Firefox auf irgendeine Weise zwingen, Weiterleitungen NICHT zwischenzuspeichern (301 und 302)?

11

Ich bin ein Webentwickler und es gibt viele Fälle, in denen ich eine 301- oder 302-Weiterleitung erstellen oder ändern muss. Es ist umständlich, sofortige Änderungen in Firefox zu testen, da Umleitungen zwischengespeichert werden. Wenn ich also die Umleitungsserverseite ändere und dann hart aktualisiere, wird die alte Umleitung zwischengespeichert, sodass ich die neue nur testen kann, indem ich meinen Cache lösche oder Starten einer privaten Browsersitzung.

Davon abgesehen ist es nicht besonders schwierig, das Problem zu umgehen, aber es ist ärgerlich, besonders wenn ich es vergesse, und es sieht so aus, als würde meine neue Umleitung nicht funktionieren, bis ich daran denke, den Cache zu löschen oder eine neue private Sitzung zu starten .

Ich verstehe, warum es vorteilhaft ist, Weiterleitungen für den normalen Gebrauch zwischenzuspeichern, aber ich möchte das Verhalten für Debugging-Zwecke deaktivieren.

chiliNUT
quelle

Antworten:

8

Sie können eine Option zum Deaktivieren der Abfrage des Caches festlegen, wenn das Entwickler-Toolbox-Fenster geöffnet ist (wie dies bei der Fall ist F12).

So stellen Sie diese Option ein:

  1. Klicken Sie auf einer beliebigen Seite auf F12, um das Entwickler-Toolbox-Bedienfeld zu öffnen.
  2. Klicken Sie oben rechts in diesem Bereich auf das Zahnradsymbol.
  3. Aktivieren Sie dort "Erweiterte Einstellungen → Cache deaktivieren (wenn die Toolbox geöffnet ist)".

Cache-Weiterleitungen werden weiterhin von Besuchen zwischengespeichert, ohne dass das Entwickler-Toolbox-Fenster geöffnet ist. Dieser Cache wird jedoch nicht konsultiert und nicht aktualisiert , solange die Entwickler-Toolbox geöffnet ist. Sie zwingen Firefox also nur vorübergehend , keine Weiterleitungen zwischenzuspeichern oder Weiterleitungen aus dem Cache bereitzustellen, dies könnte jedoch für Ihren Anwendungsfall ausreichen.

Verifiziert in Firefox 41. Angepasst an die Antwort von Ryan Bemrose auf eine andere Frage.

Tanius
quelle
2

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 curlund die -IOption ü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 curlManpage erläutert , ist die -IOption:

-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.comausfü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 -LOption (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 Permanentlysowie Location: http://www.google.com/. Wenn Ihr Webentwicklungsziel darin besteht, Dinge wie Apache-Umschreiberegeln und Weiterleitungen zu testen, curl -Iist 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.

JakeGould
quelle
2

In Firefox Firebug gibt es unter der NetRegisterkarte eine Option namens "Cache deaktivieren". Ich schalte dies ein, wenn ich Umleitungstests durchführe, und ich habe es ansonsten ausgeschaltet.

Geben Sie hier die Bildbeschreibung ein

chiliNUT
quelle
1

Gehen Sie zu about:configund setzen Sie beide browser.cache.disk.enableund browser.cache.memory.enableauf false. Dies entspricht dem Aktivieren von "Browser-Cache deaktivieren".

Qian
quelle