Я действительно смущен всеми этими вещами кеширования.Я пытаюсь настроить mod_expires
, чтобы уменьшить количество HTTP Requests
с моего веб-сайта на сервер.
До сих пор у меня все получилось, я установил mod_expires
и написал небольшой файл .conf изинструкции по http://httpd.apache.org/docs/2.0/mod/mod_expires.html.
Теперь, например, все мои .png, .gif, .jpeg
файлы имеют заголовок Cache-Control
.Мой ожидаемый результат состоял в том, что браузер не будет делать никаких GET Request
в течение периода времени (заданного из значения Cache-Control
).Но это так, каждый файл запускает запрос и получает HTTP 304 not Modified
.
Это неправильное поведение, не так ли?Это должно загрузить эти файлы из внутреннего кэша.Я не понимаю, что браузер отправляет Response header
: Cache-Control: max-age=0
.Должно ли это быть так?
Вот полный пример Request + Response headers
для одного .png file
:
Запрос
Host dev-mgg.localdomain
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
Accept image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Referer http://dev-mgg.localdomain/css/global/icons.css?18224
Cookie IR_SQLPwdStore=; IR_SQLUser=sysadm
If-Modified-Since Thu, 24 Jul 2008 06:24:11 GMT
If-None-Match "4010127-3c4-452bf1aefd8c0"
Cache-Control max-age=0
Ответ
Date Mon, 02 Aug 2010 14:00:28 GMT
Server Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny8 with Suhosin-Patch mod_perl/2.0.4 Perl/v5.10.0
Connection Keep-Alive
Keep-Alive timeout=15, max=59
Etag "4010127-3c4-452bf1aefd8c0"
Expires Mon, 02 Aug 2010 14:04:28 GMT
Cache-Control max-age=240