Почему браузеры не кэшируют эти статические файлы?
Вот пример запроса / ответа в файле JavaScript:
Request URL:http://local/index.js?time=1367958844038
Request Method:GET
Status Code:200 OK
Request Headers
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
DNT:1
User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
Response Headers
cache-control:max-age=31536000
content-encoding:gzip
content-type:application/javascript
expires:Wed, 07 May 2014 20:34:04 GMT
last-modified:Tue, 07 May 2013 20:34:04 GMT
transfer-encoding:chunked
Как вы можете видеть, сервер отвечает контролем кэша, срок его действия и даже последнее изменение, но каждый раз, когда я перезагружаюсь либо с F5, либо нажимая ввод в строке адреса, запрос выглядит одинаково (я бы ожидал, что браузер отправит if-Modified-Since, так далее.)
Это происходит как минимум в Chrome и Firefox.
1 ответ
Решение
Возможно, потому что URL time
параметр меняется с каждым запросом.
Так как URL отличается, браузер не может использовать ранее кэшированный ответ.