Firefox 5 'Caching' 301 leitet weiter


92

Gibt es eine Möglichkeit, diese Funktion zu deaktivieren?

Wenn beispielsweise eine Anfrage http://localhost/foo.htmlan die foo.htmlStammadresse gestellt wird, die ich als '301' angegeben habe, überprüfen alle nachfolgenden Anfragen, den Webserver vollständig zu umgehen und ffox 5 den Cache zu überprüfen, dass diese URL zuvor '301' war und Weiterleiten, ohne nach einer Änderung zu suchen.

Wenn ich foo.htmlvon 301'ing aufgehört habe, muss ich den Cache von Firefox leeren, um dies zu "beheben".

Chrome, IE und frühere Versionen von Firefox tun dies nicht.


Selbst das Löschen des Caches behebt diesen Fehler für mich nicht (Firefox 17.0.1, Linux).
Konrad Höffner

2
@kirdie Stellen Sie im Dialogfeld "Zuletzt verwendeten Verlauf löschen" sicher, dass Sie den Zeitbereich auf "Alles" setzen, und aktivieren Sie das Kontrollkästchen "Cache". Wenn der ausgewählte Zeitraum aktueller ist als Ihre Besuche bei der umgeleiteten URL, wird der Cache-Eintrag nicht gelöscht.
Kelvin

13
@kirdie und alle mit dem gleichen Problem: Sehen Sie sich den Verlauf mit Strg + H an. Klicken Sie dann mit der rechten Maustaste auf die Site und wählen Sie "Alle Historien für diese Site löschen" (oder etwas Ähnliches). Das hat es für mich getan.
Lars Nyström

4
@ LarsNyström: Ich habe eine Web-App entwickelt und bin darauf gestoßen - Ihr Vorschlag hat bei mir einwandfrei funktioniert. Es war "Vergiss diese Seite" in FF20.0
cincodenada

1
Wird 301 nicht als " dauerhaft verschoben " bezeichnet? Wenn ich einen Server habe, der nur https bedient, und die Leute mit http zu meinem Domainnamen gehen (schlimm genug, weil sie die Anforderungs-URL anzeigen), möchte ich, dass sich der Browser daran erinnert das dauerhaft und nicht jedes Mal http überprüfen.

Antworten:


45

301 ist nur ein normaler zwischenspeicherbarer Antwortcode. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2 sagt:

This response is cacheable unless indicated otherwise. 

Wenn Sie also nicht möchten, dass es zwischengespeichert wird, muss Ihr Server über die normalen Header, die zur Steuerung des Cache-Verhaltens verwendet werden, etwas anderes angeben.

Sie können den Cache auch manuell leeren .


7
Ich glaube, es wäre einfacher, stattdessen einen 302 zu verwenden, der standardmäßig nicht zwischengespeichert werden kann.
Frank Farmer

22
@Boris Zbarsky: Ist die Frage nicht eher "Wie lösche ich den Cache" als "Wie verhindere ich, dass der Cache überhaupt geschrieben wird"?
Bobby Jack

4
Die Frage schien mir sicher zu sein: "Wie kann ich verhindern, dass ich den Cache leeren muss?"
Boris Zbarsky

17
Es ist zum Kotzen, weil Sie eine Umleitung nicht "neu laden" können, selbst wenn Sie wissen, dass sie falsch ist. Jede andere fehlerhafte zwischengespeicherte Ressource kann separat neu geladen werden, aber nicht diese verdammten Weiterleitungen.
Sam Watkins

1
Ich habe versucht, 302 Weiterleitungen von IIS zu verwenden, aber neuere Versionen von Firefox (sowie Chrome und Edge und IE) speichern diese ebenfalls nach ihrem Verhalten. Ich fand, dass das Öffnen und Beenden eines privaten Fensters der beste Weg ist, um Websites zu testen und eine Vergiftung des Cache Ihres Browsers zu vermeiden.
dsmtoday

116

In Firefox, wenn Sie das Symbolleisten-Addon "Webentwickler" haben. Sie können jedes Mal auf Deaktivieren -> Cache deaktivieren -> Nach neuer Version der Seite suchen klicken. Laden Sie dann die URL neu und Ihr Cache wird aktualisiert. Sie müssen also nicht den gesamten Cache leeren.

Aus dem Kommentar von cptstubing06 kann Folgendes helfen, den Cache zu leeren:

  1. Art Ctrl+l , um den Cursor auf die Positionsleiste zu setzen.
  2. Geben Sie ein about:config, um die Konfigurationseinstellungen zu öffnen .
  3. Bestätigen Sie alle Warnungen.
  4. Geben Sie browser.cachegefolgt von ein Enter, um die Einstellungen zu filtern.
  5. Doppelklicken Sie browser.cache.check_doc_frequency.
  6. Ändern Sie den Wert von 3bis 1.
  7. Klicken Sie auf OK.
  8. Besuchen Sie die obsessiv zwischengespeicherte 301-Seite erneut.
  9. Setzen Sie die Frequenz zurück auf 3, wenn Sie fertig sind.

Firefox sollte jetzt auf die neue 301-Seite umleiten und die umgeleitete Seite nicht mehr aus dem Cache abrufen.


4
Dies ist eine großartige Lösung für mich - ich möchte in 99% der Fälle einen zwischengespeicherten 301, aber wenn ich einmal blau bin, muss ich möglicherweise den Speicherort der Umleitung ändern und möchte meinen GESAMTEN Cache nicht löschen. Zur Verdeutlichung enthält Firefox Web Developerunter Tools ein eigenes Menü, das nicht das Addon ist. Das Addon wird auch aufgerufen Web Developer, wird jedoch in Ihrem Menü Extras als angezeigtWeb Developer Extension und kann hier heruntergeladen werden: addons.mozilla.org/en-us/firefox/addon/web-developer .
cptstubing06

5
Bitte beachten Sie: Wenn Firefox den Cache für Ihre umgeleitete URL aktualisieren soll , können Sie Web Developer Extensiondas Änderungsverhalten von Firefox vorübergehend steuern, um immer nach einer neuen Version zu suchen , und diese dann auf Ihre normale Einstellung zurücksetzen. Dies finden Sie unter Web Develoepr-Erweiterung -> Deaktivieren -> Cache deaktivieren -> Jedes Mal nach einer neuen Version der Seite suchen -> Jedes Mal nach einer neuen Version der Seite suchen.
cptstubing06

1
Unabhängig von der gewählten Methode müssen Sie diese Einstellung so ändern, dass immer nach einer neuen Version gesucht wird, und dann Ihre URL mit der zwischengespeicherten Umleitung laden. Es wird dann den Server treffen und jede neue Antwort für diese URL erhalten und seinen Cache mit der neuen Antwort aktualisieren. Dann können Sie die Häufigkeit Ihrer Cache-Überprüfung auf Ihren ursprünglichen Wert zurücksetzen (Standard ist "Wenn die Seite veraltet ist", aber ich gehe mit "Einmal pro Sitzung", damit dieses genaue Szenario jetzt ohne meine Beteiligung behandelt wird).
cptstubing06

@ cptstubing06 danke für diesen Tipp! Ich wünschte, Sie hätten es als Lösung eingereicht, damit ich es als beste Methode zur Bewältigung dieses Problems bewerten könnte, wenn Sie nicht den gesamten Cache löschen möchten.
Mercurybullet

Zu Ihrer Information müssen Sie möglicherweise deaktivieren DNS over HTTPS, damit dies wie erwartet funktioniert.
user2741287

25

Ich habe gerade dieses Problem erlebt, und für mich waren es zwei Probleme.

Dieser bestimmte Domainname wird über Cloudflare weitergeleitet, daher musste ich ihn in den Entwicklungsmodus versetzen. Ich denke, Cloudflare hat die 301-Umleitung zwischengespeichert, sodass die Anforderung nicht an den Server gesendet werden musste. Dieser Schritt trifft möglicherweise nicht auf Sie zu.

Dann habe ich einfach meinen Firefox-Cache (Version 11) geleert, indem ich zu Extras -> Optionen gegangen bin, oben rechts auf die Schaltfläche Erweitert geklickt, die Registerkarte Netzwerk ausgewählt und dann im Abschnitt Zwischengespeicherter Webinhalt auf Jetzt löschen geklickt habe. Beachten Sie, dass mein Cache bereits auf 0 gesetzt war, ich aber trotzdem auf die Schaltfläche Jetzt löschen klicken musste, damit die Umleitung nicht mehr zwischengespeichert wird.

Es würde mich interessieren, ob jemand anderes dies überprüfen kann.


2
+1. Ihr Hinweis zum Löschen des Firefox-Cache hat dies für mich (als Benutzer / Client, nicht als Websitebesitzer) für eine bestimmte URL behoben, bei der Firefox keine aktualisierte 301 gefunden hat. Vielen Dank.
Jon Schneider

1
Sie können die nur zwischengespeicherte Weiterleitung mit diesem Firefox-Plugin löschen: addons.mozilla.org/en-us/firefox/addon/cacheviewer-continued
Steve

9

Ich habe eine Lösung dafür gefunden, die unter Firefox 26 funktioniert, nachdem eine veraltete Weiterleitung über einen Monat zwischengespeichert und neu gestartet wurde.

  1. Wählen Sie im Menü Verlauf die Option Alle Verlauf anzeigen.
  2. Geben Sie bei der Suche die Domäne mit dem Problem der zwischengespeicherten Umleitung ein, um eine Liste der Ergebnisse aufzurufen.
  3. Klicken Sie mit der rechten Maustaste auf eine davon und wählen Sie "Diese Site vergessen".

Alle zwischengespeicherten Seiten, Bilder und Weiterleitungen nur für diese Site werden aus dem Cache entfernt. Auf diese Weise können Sie die Weiterleitung für Ihre Entwicklungswebsite löschen, ohne den Rest Ihres Caches zu löschen.

Nebenbei bemerkt, ich denke, Firefox sollte Weiterleitungen höchstens für ein paar Tage zwischenspeichern. Das Zwischenspeichern über einen Monat kann einen einfachen Fehler zu einem großen Problem machen.


2
Dies funktioniert, aber beachten Sie, dass "Diese Website vergessen" auch den URL-Verlauf (zur automatischen Vervollständigung) und sogar gespeicherte Kennwörter für die gesamte Domain vergisst. Könnte nicht das sein, was du willst.
Tanius

5

Eine schnelle Lösung ist die Verwendung eines privaten Browserfensters.


Das ist meine schnelle Lösung, und manchmal reicht es aus, nur ein Fragezeichen am Ende der URL hinzuzufügen.
Johnsnails

5

Die in neueren Versionen von Firefox integrierten Entwicklertools bieten hierfür eine Lösung. Deaktivieren Sie zunächst das Caching, wenn der Entwicklungsbereich geöffnet ist:

  • Klicken Sie auf einer beliebigen Seite auf F12, um Entwicklertools aufzurufen
  • Klicken Sie ganz rechts auf das Zahnradsymbol "Toolbox-Optionen".
  • Aktivieren Advanced SettingsSie die OptionDisable Cache (when toolbox is open)

Wenn Sie jetzt eine Aktualisierung einer zwischengespeicherten Seite erzwingen möchten, laden / aktualisieren Sie die Seite bei geöffneter F12-Entwicklungs-Toolbox. Firefox umgeht den Cache und erhält frische Daten vom Server.

Ich bevorzuge diese Methode, da sie das Verhalten des Browsers beim "normalen" Nicht-Debug-Browsen nicht ändert und Sie nicht vergessen, eine globale Einstellung auf ihren ursprünglichen Wert zurückzusetzen.

Verifiziert in Firefox 39


1
Es hilft nicht zwischengespeicherten Weiterleitungen.
SuperDuck


2

In Firefox Version 38.0

Menu -> Edit -> Preferences -> Advanced -> Network -> Clear Now

Hat für mich gearbeitet.


1

301 bedeutet "dauerhaft verschoben" und kann zwischengespeichert werden. Ich denke, das ist das "richtige" Verhalten für den Browser. Sie sollten 303 See Other verwenden .


5
IE- und Chrome-Cache 303 und die HTTP-Spezifikation werden geändert, um das Zwischenspeichern zu ermöglichen. Siehe die Entwürfe unter tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-15 . Der einzig sichere Weg, um das Umleitungs-Caching zu verhindern, besteht darin, explizite Cache-Steuerelement-Header festzulegen.
Boris Zbarsky
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.