2016-01-13 11 views
5

Zauważyliśmy, że Chrome buforuje pliki lokalnie i nie wysyła nawet żądania do naszego serwera, aby sprawdzić, czy jest dostępna nowsza wersja pliku javascript.Czy Chrome narusza standardy pamięci podręcznej?

Przykład nagłówków odpowiedzi HTTP do pliku js, że Google buforowane:

Accept-Ranges:bytes 
Access-Control-Allow-Headers:Content-Type 
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS 
Access-Control-Allow-Origin:* 
Content-Encoding:gzip 
Content-Length:5479 
Content-Type:application/javascript 
Date:Tue, 12 Jan 2016 22:46:07 GMT 
ETag:"7d68e1ceb647d11:0" 
Last-Modified:Tue, 05 Jan 2016 12:44:25 GMT 
Server:Microsoft-IIS/8.5 
Vary:Accept-Encoding 
x-robots-tag:noindex 

Czy to ważne, że Chrome buforowane plik? Nie ma nagłówka lub czegoś, co deklaruje, że plik może być buforowany lokalnie, ma tylko ETag i Last-Modified.


BTW

Czy istnieje sposób (być może nagłówek), aby poinstruować Chrome, aby sprawdzić, czy w pamięci podręcznej plik został zmieniony bez dołączania wersję do nazwy pliku? Ustawienie no-cache nie jest opcją, ponieważ chcę, aby było buforowane, ale chcę używać nagłówków ETag i Last-Modified tak, jak powinno.

+0

Nie mam odpowiedzi na główne pytanie, ale wiesz o tym? http://stackoverflow.com/a/7000899/704097 –

+0

Również powiązane: http://stackoverflow.com/questions/8294034/chrome-browser-is-not-sending-if-modified-since-header-to- server –

+0

@Miquel, tak, znam tę opcję w narzędziach programistycznych. Ale nie mogę i nie chcę, aby moi użytkownicy używali tego i wyczyścili całą pamięć podręczną mojej witryny ... – gdoron

Odpowiedz

1

ile konkretnie ograniczone przez Cache-Control (sekcja 14.9) Dyrektywa system buforowania zawsze przechowywać udaną odpowiedź (patrz punkt 13.8) jako wejścia pośredniczącego, może zwrócić go bez sprawdzania jeśli jest świeże i MOŻE je zwrócić po udanej walidacji.

Zawsze można użyć dyrektywy o konieczności ponownej weryfikacji.

Kiedy dyrektywa musi-revalidate występuje w odpowiedzi otrzymał przez cache, że cache NIE użyć wpisu po staje się czerstwy odpowiedzieć na kolejne zamówienie bez uprzedniego przedłużania go serwera pochodzenia .

Source

+0

Hmm ... Ciekawi mnie, dlaczego przerwałeś cytowanie tuż przed tym, jak specyfikacja mówi, że jest oczekiwana dla buforów, aby nie buforować odpowiedzi, gdy nie ma wskazania, że ​​odpowiedź może być buforowana. "Jeśli nie ma weryfikatora pamięci podręcznej ani określonego czasu wygaśnięcia związanego z odpowiedzią, nie oczekujemy, że będzie on buforowany, ale niektóre pamięci podręczne MOGĄ naruszać to oczekiwanie." – gdoron

Powiązane problemy