Будут ли браузеры кэшировать страницы с другим ETag? - PullRequest
0 голосов
/ 23 февраля 2012

Я не знаю много о том, как работает кэширование, или о том, как много я контролирую сервер nginx моего хостинга. Тем не менее, у меня есть живой сайт, в который я должен внести изменения, поэтому ваш совет будет очень признателен.

В настоящее время у меня есть следующие три файла:

index.html
my.js
my.css

Все файлы обслуживаются (в моем браузере) следующими заголовками:

Date:Wed, 22 Feb 2012 23:17:49 GMT
ETag:"b2c84d1-7551-4b995b0c89c0"
Last-Modified:Wed, 22 Feb 2012 23:14:34 GMT
Server:nginx

Других заголовков кеша нет. Учитывая вышесказанное, если я просто заменю файлы новыми версиями, могу ли я предположить, что браузеры пользователей будут знать, что не следует использовать кэшированные версии? (Я предполагаю, что если я заменю файл, ETag изменится.)

Чего я хотел бы избежать, так это ситуации, когда браузер пользователя загружает новую версию index.html, но продолжает ссылаться на кэшированную версию my.js, поскольку это может привести к поломке. Я также хотел бы знать, могу ли я полагаться на пользователей, видящих более новую версию сайта, или же некоторые пользователи будут продолжать видеть кешированную версию.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 23 февраля 2012

Браузер отправит заголовки If-Modified-Since: и (если у вас последний браузер) заголовок If-None-Match:, первый ссылающийся на заголовок Last-Modified:, последний содержит ETag. Сервер отправит новый файл, если дата модификации новее, чем заголовок Last-Modified. Как изменения ETag будут зависеть от вашего сервера, но в большинстве случаев это будет хеш-код содержимого файла.

Так что просто убедитесь, что и содержимое файла изменяется, и дата изменения актуальна (например, touch /var/www/your-file.js).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...