Prosty kod HTML:Jak zmusić Chrome NIE do buforowania przekierowań?
<img src="http://someaddr/image.php">
image.php to skrypt, który zwraca losową przekierować do statycznego obrazu z wszystkimi niezbędnymi nagłówków no-cache:
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
Location: http://someaddr/random_image_12345.jpg
Problem: podczas nawigowania wstecz i do tej strony HTML, Chrome (najnowsza win/mac) nie revalidate adres http://someaddr/image.php
.
Próbowałem używać przekierowania 302, a także 303 (które w RFC ma silniejsze wymaganie, że NIGDY nie powinno być buforowane przez przeglądarkę). Działa to jak urok w IE, FireFox, Opera. Zawsze odświeżają http://someaddr/image.php
. Ale Chrome nie.
Używam nawet Narzędzi dla programistów w Chrome i wygląda na to, że w Dzienniku sieci nawet nie pokazuje żadnej próby (buforowanie lub nie) pobrania http://someaddr/image.php
. Dziennik sieci pokazuje tylko jedno połączenie z http://someaddr/random_image_12345.jpg
(buforowane). Dlaczego to jest tak uszkodzony ...
Znam naiwny/proste rozwiązanie oddania ciąg kwerendy w źródle obrazu:
<img src="http://someaddr/image.php?refresh={any random number or timestamp}">
Ale nie podoba mi się/nie można używać hacki jak to. Czy są jakieś inne opcje?
Czy próbowałeś z 'Expires: -1'? Dodaj także "no-store" do pragma –
Wygasa: -1, brak wpływu na Chrome. – thedk
Zbadałem chrom jeszcze więcej. Zrobiłem JavaScript na stronie, który dynamicznie wstawia do treści strony. Nawet w tym przypadku Chromes odmawia połączenia z źródłowym adresem URL src. – thedk