Przekierowania 301 `` buforowania '' przeglądarki Firefox 5

92

Czy istnieje sposób na wyłączenie tej „funkcji”?

Na przykład, jeśli zostanie wysłane http://localhost/foo.htmlżądanie do adresu głównego, które foo.htmlokreśliłem jako `` 301 '', wszystkie kolejne żądania całkowitego ominięcia serwera internetowego i ffox 5 sprawdzi jego pamięć podręczną, przeczytaj, że ten adres URL został poprzednio `` 301 '' i przekierować bez sprawdzania zmiany.

Jeśli zatrzymałem się foo.htmlod 301, muszę wyczyścić pamięć podręczną Firefoksa, aby to `` naprawić ''.

Chrome, IE i poprzednia wersja przeglądarki Firefox tego nie robią.

maxp
źródło
Nawet usunięcie pamięci podręcznej nie rozwiązuje tego błędu (Firefox 17.0.1, Linux).
Konrad Höffner
2
@kirdie W oknie dialogowym „wyczyść ostatnią historię” upewnij się, że ustawiłeś zakres czasu na „wszystko” i zaznacz pole wyboru „pamięć podręczna”. Jeśli wybrany zakres czasu jest późniejszy niż Twoje wizyty na przekierowanym adresie URL, wpis pamięci podręcznej nie zostanie wyczyszczony.
Kelvin,
13
@kirdie i wszyscy z tym samym problemem: spójrz na historię za pomocą Ctrl + H. Następnie kliknij prawym przyciskiem myszy witrynę i wybierz opcję „usuń całą historię dla tej witryny” (lub coś podobnego). To zrobiło to dla mnie.
Lars Nyström
4
@ LarsNyström: Opracowanie aplikacji internetowej i wpadłem na to - Twoja sugestia zadziałała dla mnie bez zarzutu. To było „Zapomnij o tej witrynie” w FF20.0
cincodenada
1
Czy 301 nie nazywa się „przeniesione na stałe ” Jeśli mam serwer obsługujący tylko https i ludzie przechodzą do mojej nazwy domeny za pomocą protokołu http (i tak jest to wystarczająco złe, ponieważ ujawnią żądanie uri), chcę, aby przeglądarka zapamiętała że na stałe i nie sprawdzaj http za każdym razem.

Odpowiedzi:

45

301 to zwykły buforowany kod odpowiedzi. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2 mówi:

This response is cacheable unless indicated otherwise. 

Więc jeśli nie chcesz, aby były buforowane, Twój serwer musi wskazać inaczej za pomocą normalnych nagłówków używanych do kontrolowania zachowania pamięci podręcznej.

Możesz również wyczyścić pamięć podręczną ręcznie .

Boris Zbarsky
źródło
7
Uważam, że łatwiej byłoby zamiast tego użyć 302, który domyślnie nie jest buforowalny.
Frank Farmer
22
@Boris Zbarsky: Czy pytanie nie jest bardziej „Jak wyczyścić pamięć podręczną” niż „Jak w pierwszej kolejności zapobiec wystąpieniu zapisu w pamięci podręcznej”?
Bobby Jack,
4
Pytanie z pewnością brzmiało: „Jak mam uniknąć konieczności czyszczenia pamięci podręcznej”!
Boris Zbarsky,
17
To jest do bani, ponieważ nie można przekierować „shift-reload”, nawet jeśli wiesz, że jest złe. Każdy inny zły zasób w pamięci podręcznej można ponownie załadować osobno, ale nie te przekierowania.
Sam Watkins,
1
Próbowałem użyć przekierowań 302 z IIS, ale najnowsze wersje Firefoksa (oraz Chrome i Edge i IE) również je buforują, sądząc po ich zachowaniu. Odkryłem, że otwieranie i zamykanie okna prywatnego to najlepszy sposób na testowanie witryn internetowych i unikanie zatruwania pamięci podręcznej przeglądarki.
dsmtoday
117

W przeglądarce Firefox, jeśli masz dodatek paska narzędzi „programista sieciowy”. Możesz kliknąć wyłącz -> wyłącz pamięć podręczną -> za każdym razem sprawdzaj dostępność nowej wersji strony. Następnie przeładuj adres URL i odświeży pamięć podręczną. Nie musisz więc czyścić całej pamięci podręcznej.

Z komentarza cptstubing06 można wyczyścić pamięć podręczną:

  1. Wpisz, Ctrl+laby umieścić kursor na pasku lokalizacji.
  2. Wpisz, about:configaby otworzyć ustawienia konfiguracji .
  3. Potwierdź wszelkie ostrzeżenia.
  4. Wpisz, browser.cachea następnie, Enteraby przefiltrować ustawienia.
  5. Kliknij dwukrotnie browser.cache.check_doc_frequency.
  6. Zmień wartość z 3na 1.
  7. Kliknij OK.
  8. Wróć do obsesyjnie buforowanej strony 301.
  9. Po zakończeniu zresetuj częstotliwość z powrotem do 3.

Firefox powinien teraz przekierować na nową stronę 301, nie pobierając już przekierowanej strony z pamięci podręcznej.

Steve Parish
źródło
4
Jest to dla mnie świetne rozwiązanie - chcę mieć buforowany 301 przez 99% czasu, ale raz na niebiesko może być konieczna zmiana lokalizacji przekierowania i nie chcę wyczyścić mojej CAŁEJ pamięci podręcznej. Dla wyjaśnienia, Firefox ma własne Web Developermenu w narzędziach, które nie jest dodatkiem. Dodatek jest również wywoływany Web Developer, ale pojawia się w menu Narzędzia jako Web Developer Extensioni można go pobrać tutaj: addons.mozilla.org/en-us/firefox/addon/web-developer .
cptstubing06,
5
Uwaga - jeśli chcesz, aby Firefox aktualizował swoją pamięć podręczną dla Twojego przekierowanego adresu URL, możesz Web Developer Extensiontymczasowo kontrolować zachowanie firefoxa, aby zawsze sprawdzać dostępność nowej wersji, a następnie przywrócić normalne ustawienie. To jest w rozszerzeniu Web Develoepr -> Wyłącz -> Wyłącz pamięć podręczną -> Sprawdź, czy jest nowsza wersja strony -> Zawsze sprawdzaj, czy jest nowsza wersja strony.
cptstubing06,
1
Niezależnie od wybranej metody procedura polega na zmianie tego ustawienia, aby zawsze sprawdzać dostępność nowej wersji, a następnie załadować adres URL zawierający przekierowanie w pamięci podręcznej. Następnie trafi do serwera i otrzyma nową odpowiedź dla tego adresu URL i zaktualizuje pamięć podręczną nową odpowiedzią. Następnie możesz ustawić częstotliwość sprawdzania pamięci podręcznej z powrotem na pierwotną wartość (domyślnie jest to „Kiedy strona jest nieaktualna”, ale wybieram „Raz na sesję”, aby ten dokładny scenariusz był teraz obsługiwany bez mojego udziału).
cptstubing06,
@ cptstubing06 dzięki za tę wskazówkę! Żałuję, że nie przesłałeś go jako rozwiązania, abym mógł go zaakceptować jako najlepszy sposób na rozwiązanie tego problemu, gdy nie chcesz wyczyścić całej pamięci podręcznej.
Mercurybullet,
Do Twojej wiadomości może być konieczne wyłączenie DNS over HTTPS, aby to działało zgodnie z oczekiwaniami.
user2741287
25

Właśnie doświadczyłem tego problemu i dla mnie były to dwie kwestie.

Ta konkretna nazwa domeny jest kierowana przez Cloudflare, więc musiałem ustawić ją w trybie programistycznym. Myślę, że Cloudflare buforował przekierowanie 301, więc nie musiał wysyłać żądania do serwera. Ten krok może oczywiście nie dotyczyć Ciebie.

Następnie po prostu wyczyściłem pamięć podręczną Firefoksa (wersja 11), przechodząc do Narzędzia -> Opcje, klikając przycisk Zaawansowane w prawym górnym rogu, wybierając kartę Sieć, a następnie klikając Wyczyść teraz w sekcji Cached Web Content. Zauważ, że moja pamięć podręczna była już ustawiona na 0, ale nadal musiałem kliknąć przycisk Wyczyść teraz, aby przekierowanie przestało być buforowane.

Chciałbym wiedzieć, czy ktoś inny może to zweryfikować.

Charlie Gorichanaz
źródło
2
+1. Twoja uwaga na temat czyszczenia pamięci podręcznej przeglądarki Firefox naprawiła to dla mnie (jako użytkownika / klienta, a nie właściciela witryny) dla określonego adresu URL, w którym Firefox nie odebrał 301, który został zaktualizowany. Dzięki.
Jon Schneider
1
Możesz usunąć tylko przekierowanie z pamięci podręcznej za pomocą tej wtyczki do Firefoksa: addons.mozilla.org/en-us/firefox/addon/cacheviewer-continued
Steve
9

Znalazłem rozwiązanie tego problemu, które działa w przeglądarce Firefox 26 po przestarzałym przekierowaniu w pamięci podręcznej przez ponad miesiąc i ponownym uruchomieniu.

  1. W menu Historia wybierz opcję Pokaż całą historię.
  2. W wyszukiwaniu wpisz domenę z problemem przekierowania z pamięci podręcznej, aby wyświetlić listę wyników.
  3. Kliknij jeden z nich prawym przyciskiem myszy i wybierz „Zapomnij o tej witrynie”.

Wszystkie zapisane w pamięci podręcznej strony, obrazy i przekierowania tylko dla tej witryny zostaną usunięte z pamięci podręcznej. Pozwala to wyczyścić przekierowanie do witryny programistycznej bez czyszczenia pozostałej pamięci podręcznej.

Na marginesie, myślę, że Firefox powinien przechowywać przekierowania w pamięci podręcznej najwyżej przez kilka dni. Buforowanie ich przez ponad miesiąc może sprawić, że prosty błąd będzie dużym problemem.

Malvineous
źródło
2
To działa, ale pamiętaj, że opcja „Zapomnij o tej witrynie” spowoduje również zapomnienie historii adresów URL (w celu automatycznego uzupełniania), a nawet zapisanych haseł dla całej domeny. Może nie być tym, czego chcesz.
tanius
5

Szybką naprawą jest użycie prywatnego okna przeglądarki.

Costa
źródło
To moja szybka naprawa i czasami wystarczy dodać znak zapytania na końcu adresu URL.
johnsnails
5

Narzędzia programistyczne wbudowane w najnowsze wersje przeglądarki Firefox mają na to rozwiązanie. Najpierw wyłącz buforowanie, gdy okienko dewelopera jest otwarte:

  • Na dowolnej stronie naciśnij, F12aby wyświetlić narzędzia programistyczne
  • Po prawej stronie kliknij ikonę koła zębatego „Opcje Toolbox”
  • Pod Advanced Settingszaznacz opcjęDisable Cache (when toolbox is open)

Teraz za każdym razem, gdy chcesz wymusić odświeżenie strony w pamięci podręcznej, załaduj / odśwież stronę przy otwartym przyborniku programistycznym F12. Firefox ominie pamięć podręczną i pobierze świeże dane z serwera.

Wolę tę metodę, ponieważ nie zmienia ona sposobu, w jaki przeglądarka zachowuje się przy „normalnym” przeglądaniu bez debugowania i nie ryzykujesz zapomnienia o przywróceniu ustawienia globalnego do jego pierwotnej wartości.

Zweryfikowano w przeglądarce Firefox 39

Ryan Bemrose
źródło
1
Nie pomaga w przekierowaniach z pamięci podręcznej.
SuperDuck,
3

301 oznacza przeniesienie na stałe. Dlatego uważam, że rozsądne jest buforowanie odpowiedzi.

Czy próbowałeś ustawić nagłówki cache-controli expires?

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

Chris Diver
źródło
3
Czasami rozwijamy lub migrujemy serwery lub śledzimy usterkę i naprawdę musimy wyłączyć te rzeczy, ponieważ może to naprawdę przeszkadzać.
Jason
2

W przeglądarce Firefox w wersji 38.0

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

Pracował dla mnie.

Soorajlal KG
źródło
1

301 oznacza przeniesione na stałe i jest buforowalne, więc myślę, że to „właściwe” zachowanie przeglądarki. Powinieneś użyć 303 Zobacz inne .

jsz
źródło
5
IE i Chrome cache 303, a specyfikacja HTTP jest zmieniana, aby umożliwić jej buforowanie. Zobacz szkice na tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-15 . Zatem jedynym bezpiecznym sposobem zapobiegania buforowaniu przekierowań jest ustawienie jawnych nagłówków Cache-Control.
Boris Zbarsky