I'm generating dynamic content with PHP.
I'm sending the following HTTP-header:
HTTP/1.1 304 Not Modified
Date: Sun, 09 Dec 2012 17:24:41 GMT
Server: Apache
Connection: keep-alive, Keep-Alive
Keep-Alive: timeout=1, max=100
Etag: "237f43b800e655dbe6567f7d32d34c99"
Expires: Sun, 16 Dec 2012 17:24:41 GMT
Cache-Control: max-age=604800
Vary: Accept-Encoding
I later check for the Etag to send a header('HTTP/1.1 304 Not Modified')
if it matches.
This works perfectly with Chrome and Firefox.
However, Safari (Version 6.0.2) does not send "If-Modified-Since" and "If-None-Match" headers.
This is the Request-Header sent by Safari on the second page hit:
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.17 (KHTML, like Gecko) Version/6.0.2 Safari/536.26.17
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Cache-Control: max-age=0
All other files linked on that page receive the right Request-Headers and Safari used cached files or 304 where appropriate.
Why doesn't send Safari the correct Request-Header? What could I change?
Thank you!
Cache-Control: max-age=0
, which smells of a refresh. – HaspCache-Control
-Line. What I am irritated about is that Safari NEVER sends the Date or Etag in the Request-Header but Chrome and Firefox do. – Toomer304 Not Modified
response or is it just a copy & paste mistake and you are sending these headers in a200 OK
? – Chiao