/ / Wyjaśnienie dotyczące użycia nagłówka „Cache-Control” - html, caching, java-ee, header

Wyjaśnienie dotyczące użycia nagłówka „Cache-Control” - html, caching, java-ee, header

Próbujemy poprawić czas ładowania strony witryny. Oprócz kilku innych optymalizacji dodałem filtr serwletów do ustawienia ”Cache-Control„nagłówki do plików graficznych (png, gif, jpg). Zgodnie z oczekiwaniami pliki obrazów są teraz buforowane po stronie klienta i mogę zweryfikować wygasa czas każdego pliku, sprawdzając folder tymczasowy (IE). Moje pytanie brzmi, że przeglądarki nadal żądają zasobów statycznych i otrzymują HTTP304 (Nie zmodyfikowano) odpowiedź. Mam na myśli to, że w efekcie osiągnąłem zmniejszenie liczby przesłanych bajtów, ale nie liczby obiegów sieciowych (co w moim przypadku jest trochę powolne). Czy jest jakiś inny nagłówek / sposób na zatrzymanie przeglądarek sprawdzających serwer, czy zasób został zmodyfikowany?

Odpowiedzi:

1 dla odpowiedzi № 1

@chedine,

Pliki buforowane przez przeglądarkę nie powinny zwracać 304powinien zwrócić 200. Powinieneś użyć mod_expires, aby ustawić max wiek i mod_headers, aby ustawić nagłówki Cache-Control. Oto przykład zwracający poprawną 200 odpowiedzi dla plików statycznych w pamięci podręcznej przeglądarki:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css M5184000
ExpiresByType application/x-javascript M5184000
ExpiresByType text/html M1200
ExpiresByType text/plain M1200
ExpiresByType image/gif M31536000
ExpiresByType application/x-gzip M31536000
ExpiresByType image/x-icon M31536000
ExpiresByType image/jpeg M31536000
ExpiresByType image/png M31536000
</IfModule>

<FilesMatch ".(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$">
<IfModule mod_headers.c>
Header set Vary "Accept-Encoding, Cookie"
Header set Pragma "public"
Header append Cache-Control "public, must-revalidate, proxy-revalidate"
</IfModule>
</FilesMatch>

0 dla odpowiedzi nr 2

Jakie masz ustawienia kontroli pamięci podręcznej, powinieneś być w stanie ustawić maksymalny wiek i nie powracać przez pewien czas.

Możesz spróbować fiddlera, aby przejrzeć swoje żądanie / odpowiedź http i upewnić się, że jest to, jak myślisz.

widzieć http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html dla szczegółów


0 dla odpowiedzi № 3

Tak, w samej przeglądarce. na przykład w IE, w ustawieniach Historii przeglądania, opcja „Sprawdź, czy są nowsze wersje przechowywanych stron” - wybranie „Nigdy” spowoduje „honorowanie” wygaśnięcia i uniknięcie żądania podróży / niezmodyfikowania na serwerze, dopóki nie nadejdzie podana data ważności.