Czy jest jakiś sposób, aby zmusić Firefoksa do NIE buforowania przekierowań (301 i 302)?

11

Jestem programistą i wiele razy muszę utworzyć lub zmienić przekierowanie 301 lub 302. Uciążliwe jest testowanie natychmiastowych zmian w Firefoksie, ponieważ buforuje przekierowania, więc jeśli zmienię przekierowanie po stronie serwera, a następnie twardy odśwież, stare przekierowanie jest buforowane, więc jedynym sposobem na przetestowanie nowego jest usunięcie mojej pamięci podręcznej lub rozpoczęcie prywatnej sesji przeglądarki.

To powiedziawszy, obejście nie jest szczególnie trudne, ale jest denerwujące, zwłaszcza gdy o tym zapomnę, i wygląda na to, że moje nowe przekierowanie nie działa, dopóki nie pamiętam, aby usunąć pamięć podręczną lub rozpocząć nową sesję prywatną .

Rozumiem, dlaczego korzystne jest buforowanie przekierowań przy normalnym użytkowaniu, ale chciałbym wyłączyć to zachowanie w celu debugowania.

chiliNUT
źródło

Odpowiedzi:

8

Możesz ustawić opcję wyłączenia sprawdzania pamięci podręcznej, jeśli masz otwarty panel narzędzi programisty (jak to się dzieje F12).

Aby ustawić tę opcję:

  1. Na dowolnej stronie naciśnij, F12aby otworzyć panel przybornika programisty.
  2. Kliknij ikonę koła zębatego w prawym górnym rogu tego panelu.
  3. Tam zaznacz „Ustawienia zaawansowane → Wyłącz pamięć podręczną (gdy otwarty jest zestaw narzędzi)”.

Przekierowania pamięci podręcznej będą nadal buforowane podczas odwiedzin bez otwartego panelu przybornika programisty, ale ta pamięć podręczna nie jest sprawdzana i nie jest aktualizowana, dopóki przybornik programisty jest otwarty. Dlatego tymczasowo wymuszasz, aby Firefox nie buforował przekierowań ani nie przekazywał przekierowań z pamięci podręcznej, ale może to wystarczyć dla twojego przypadku użycia.

Zweryfikowano w przeglądarce Firefox 41. Na podstawie odpowiedzi Ryana Bemrose'a na inne pytanie.

Tanius
źródło
2

Całkowicie rozumiem, dlaczego warto przekierować pamięć podręczną w 99% sytuacji, ale czy w ogóle można to wyłączyć?

Cóż, jeśli robisz to z punktu widzenia rozwoju serwera WWW, to oczekiwanie, że zachowanie „pamięci podręcznej za wszelką cenę” zostanie zmienione w celu zaspokojenia twoich „niekończących się usprawnień programistycznych”, jest złym sposobem na atak tej bestii. Podczas debugowania przekierowań serwera WWW należy skoncentrować się na sprawdzeniu danych wyjściowych nagłówka, a nie pełnego renderowania strony udostępnianego przez przeglądarki.

Zamiast tego poleciłbym nauczenie się korzystania curlz -Iopcji wiersza poleceń i zwracania tylko nagłówków, co jest bardzo przydatne w przypadku debugowania przekierowań 301 i 302. Z linii poleceń. Jak wyjaśniono na oficjalnej curlstronie podręcznika, -Iopcja jest następująca:

-I / - głowa

(HTTP / FTP / FILE) Pobierz tylko nagłówek HTTP! Serwery HTTP zawierają polecenie HEAD, którego używa, aby uzyskać tylko nagłówek dokumentu. W przypadku pliku FTP lub PLIKU curl wyświetla tylko rozmiar pliku i czas ostatniej modyfikacji.

Na przykład wykonaj a, curl -I google.coma wynik będzie taki:

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

A jeśli chcesz śledzić cały łańcuch przekierowań za pomocą nagłówków, dodaj -Lopcję (aka:) --locationdo polecenia w następujący sposób:

curl -I -L google.com

Wyjście tej komendy po łańcuchu przekierowań lokalizacji wyglądałoby mniej więcej tak:

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

Zwróć uwagę na odpowiedź nagłówka HTTP/1.1 301 Moved Permanentlyoraz Location: http://www.google.com/. Jeśli Twoim celem rozwoju sieci jest testowanie reguł, takich jak przepisywanie i przekierowywanie Apache, curl -Ijest to najlepsze narzędzie, które pomoże Ci zobaczyć, co robią Twoje poprawki.

A po tym, jak te poprawki zostaną sfinalizowane i dopracowane, wykonaj ostatni przegląd w prawdziwej przeglądarce, aby zobaczyć, jak wszystko ożywa.

JakeGould
źródło
2

W Firefoksie Firebug pod Netzakładką znajduje się opcja „Wyłącz pamięć podręczną”. Włączam to podczas testowania przekierowań i mam to wyłączone.

wprowadź opis zdjęcia tutaj

chiliNUT
źródło
1

Idź do about:configi ustaw zarówno browser.cache.disk.enablei browser.cache.memory.enablena false. Jest to to samo, co zaznaczenie opcji „Wyłącz pamięć podręczną przeglądarki”.

Qian
źródło