Назад | Перейти на главную страницу

Статические ресурсы веб-сервера не кэшируются хостом

У моего веб-сервера периодические всплески трафика:

Журналы показали, что они исходят от одного пользователя:

(ip) - - [31/Aug/2011:20:55:31 -0400] "GET /train/16/32462 HTTP/1.1" 200 12909
(ip) - - [31/Aug/2011:20:55:32 -0400] "GET /css/global.1314709741.css HTTP/1.1" 200 9388
(ip) - - [31/Aug/2011:20:55:32 -0400] "GET /css/battle.1307899664.css HTTP/1.1" 200 1567
(ip) - - [31/Aug/2011:20:55:32 -0400] "GET /js/jquery.pulse.1313994229.js HTTP/1.1" 200 2534
(ip) - - [31/Aug/2011:20:55:32 -0400] "GET /js/jquery-1.6.2.min.1309653547.js HTTP/1.1" 200 91887
(ip) - - [31/Aug/2011:20:55:32 -0400] "GET /js/common.1313994229.js HTTP/1.1" 200 9128
(ip) - - [31/Aug/2011:20:55:32 -0400] "GET /js/battle.1313994229.js HTTP/1.1" 200 24155
(ip) - - [31/Aug/2011:20:55:32 -0400] "GET /js/prototype.1283487121.js HTTP/1.1" 200 140186
(ip) - - [31/Aug/2011:20:55:44 -0400] "GET /train/16/36685 HTTP/1.1" 200 13210
(ip) - - [31/Aug/2011:20:55:44 -0400] "GET /css/global.1314709741.css HTTP/1.1" 200 9388
(ip) - - [31/Aug/2011:20:55:44 -0400] "GET /css/battle.1307899664.css HTTP/1.1" 200 1567
(ip) - - [31/Aug/2011:20:55:44 -0400] "GET /js/jquery.pulse.1313994229.js HTTP/1.1" 200 2534
(ip) - - [31/Aug/2011:20:55:44 -0400] "GET /js/jquery-1.6.2.min.1309653547.js HTTP/1.1" 200 91887
(ip) - - [31/Aug/2011:20:55:44 -0400] "GET /js/common.1313994229.js HTTP/1.1" 200 9128
(ip) - - [31/Aug/2011:20:55:44 -0400] "GET /js/battle.1313994229.js HTTP/1.1" 200 24155
(ip) - - [31/Aug/2011:20:55:44 -0400] "GET /js/prototype.1283487121.js HTTP/1.1" 200 140186

Как видите, запросы на статические ресурсы (css, js) полностью возвращаются со статусом 200 OK, когда вместо этого они должны вернуться к короткому 304 Not Modified ответы (или не запрашиваться вообще).

Что вызывает это, и могу ли я что-то со своей стороны исправить?

Почему вы думаете, что запросы не следует возвращать с 200 OK? В предоставленном журнале нет информации, указывающей на то, что клиент отправил соответствующие заголовки кеширования, чтобы ваш сервер мог ответить чем-нибудь еще.

Проблема может быть на вашей стороне, из-за того, что не отправляются хорошие заголовки кеширования, или это может быть проблема с клиентом (-ами), не отправляющим соответствующие заголовки кеширования обратно. Не забывайте также, что IP-адрес не может однозначно соответствовать одному браузеру; у вас может быть несколько пользователей с одного NAT-адреса, которые будут делать запросы к вашему сайту.