Jak zatrzymać wysyłanie przez Chrome kontroli Cache: max-age = 0 po naciśnięciu Enter?

27

Jestem na lekko łuszcząca związku i staram się poprawić przeglądanie doświadczenie z wykorzystaniem lokalnego pełnomocnika. Jednak według moich badań , jeśli kliknę „enter” w mojej przeglądarce na istniejącym adresie URL, wyśle Cache-Control: max-age=0nagłówek do serwera proxy, który z kolei dokona podróży w obie strony do serwera w celu ponownej walidacji treści.

Nie chcę tego szczególnie; jeśli obiekt jest przestarzały, pamięć podręczna ponownie go pobierze, ale jeśli nie jest przestarzały, nie widzę powodu, dla którego chciałbym, aby obiekt był odnawiany za każdym razem. Jeśli podejrzewam, że strona jest stara, mam Shift-F5 i nie boję się jej używać.

Czy jest gdzieś za kulisami tuning, który wyłącza to irytujące zachowanie?

womble
źródło

Odpowiedzi:

25

Odkryłem, że jeśli przeglądasz stronę za pomocą przycisku Wstecz lub linku, Chrome nie wysyła nagłówka max-age = 0 i zwykle (jeśli serwer Apache po drugiej stronie jest skonfigurowany do buforowania) użyje buforowana wersja strony.

Jednak po wpisaniu adresu URL (np. Www.example.com/abcd/index.html) bezpośrednio w pasku adresu, a następnie naciśnięciu przycisku Return, Chrome zawsze wysyła Cache-Control: max-age=0nagłówek, który omija buforowanie.

Svenny
źródło
5

Możliwe jest modyfikowanie nagłówków wysyłanych przez Chrome na serwer za pomocą skryptów użytkownika (ala greasemonkey) lub rozszerzeń. Oto jedno rozszerzenie, które powinno działać: ModHeader

Zgodnie z wprowadzeniem i zrzutem ekranu dodanie takiego nagłówka cache-control max-age=1000powinno być stosunkowo proste. Obsługuje także białe listy domen, aby zapobiec wysyłaniu nagłówków do określonych stron internetowych. Dla tej pracy może być konieczne włączenie niektórych eksperymentów w chrome: // flags.

demonstracja dodawania nagłówków

Jeremy W.
źródło
1

Przeglądarki zachowują się na podstawie otrzymanych nagłówków odpowiedzi. Jeśli przeglądarka odbierze nagłówki odpowiedzi, takie jak

Cache-Control: private
Expires: Thu, 01 Jan 1970 00:00:00 UTC

wtedy przeglądarka zawsze prosiłaby o Cache-Control: max-age=0. Zwykle dzieje się tak w przypadku kontenera Tomcat, w którym BaseAuthenticatordodaje się te nagłówki odpowiedzi, gdy zmienna disableProxyCachingjest prawdziwa. Jeśli napotykasz podobny problem, możesz odwiedzić ten link, aby uzyskać rozwiązanie.

Mam nadzieję, że to pomaga do pewnego stopnia :)

Sunil Dabburi
źródło