При оптимизации кэширования на нашем сайте я заметил, что на наш сайт отправлено множество if-none-match
-requests. Насколько я понимаю кэширование, это не должно быть так, если кеш остается в силе.Когда отправляется запрос «если нет ответа»?
Один конкретный запрос генерирует следующий response-header
:
HTTP/1.1 200 OK
Cache-Control: public, max-age=25920000
Transfer-Encoding: chunked
Content-Type: application/javascript; charset=utf-8
Content-Encoding: gzip
Expires: Thu, 04 Feb 2016 17:20:09 GMT
Last-Modified: Mon, 01 Jan 2001 23:00:00 GMT
ETag: W/"0"
Vary: Accept-Encoding
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
Date: Fri, 10 Apr 2015 16:20:09 GMT
Как вы можете видеть, кэш должен быть действителен в течение 300 дней. Как я понимаю, браузер должен использовать свой кеш непосредственно в течение этого периода. Только после того, как этот период закончился, он должен выдать запрос с заголовком if-none-match
. Но браузеры, похоже, игнорируют это и отправляют этот if-none-match
-request каждый раз, когда страница загружается только для получения 304-response ("Not Modified")
.
Что мне нужно изменить, чтобы браузеры не отправляли эти бесполезные запросы?
Не знаю, но не заменил бы теги HTTP/1.0 'Cache-Control: max-age = 600'? Помогите? – maaartinus
Можете ли вы рассказать примерно, сколько таких запросов вы видите? Может ли это быть у клиентов, перезагружающих страницу? Это может привести к тому, что некоторые браузеры будут переоценивать ресурсы. –