Ich versuche, ein grundlegendes Verhalten in Bezug auf meine Caching-Strategie zu haben: Dateien sollten jedes Mal zwischengespeichert und mit dem Server erneut validiert werden. Also möchte ich, dass Apache einen 304 zurückschickt.
Hier ist der Dialog, der bei jeder Browseraktualisierung angezeigt wird:
Status Code:200 OK
Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Cookie: ...
Host:...
If-Modified-Since:Tue, 14 Oct 2014 15:10:37 GMT
If-None-Match:"1461-505636af08fcd-gzip"
User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
Response Headers
Accept-Ranges:bytes
Cache-Control:No-cache
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:1412
Content-Type:text/html
Date:Tue, 14 Oct 2014 16:58:05 GMT
ETag:"1461-505636af08fcd-gzip"
Keep-Alive:timeout=5, max=99
Last-Modified:Tue, 14 Oct 2014 15:10:37 GMT
Server:Apache/2.4.6 (Ubuntu)
Vary:Accept-Encoding
(Dies ist von Chrome Devtools, wobei Cache deaktivieren deaktiviert ist.)
Sie können sehen, dass die Antwort den Header "Cache-Steuerung: Kein Cache" enthält und dass der Header "Wenn geändert seit" mit dem Header "Zuletzt geändert" übereinstimmt. Das ETag passt auch.
Sollte Apache in diesem Fall nicht eine 304 senden?
BEARBEITEN
Deaktivieren von ETags in Apache mit
Header unset ETag
macht das Caching-Verhalten vorhersehbarer ...
Cache-Control:max-age=0
den Cache deaktiviert, so dass Sie dieCache-Control:No-cache
Antwort sehen.