Если срок действия элемента управления кэшем истекает через 10 лет, используется ли doc.css? V = 128 точно так же, как doc_v128.css? - PullRequest
0 голосов
/ 19 июля 2010

При использовании заголовков Cache-Control и Expires, чтобы срок действия страницы не истекал через 10 лет:

Cache-Control: max-age=315360000
Expires: Sun, 19 Jul 2020 18:06:32 GMT

будет ли при использовании строки 1 результат, идентичный строке 2?

<link href="/public/doc.css?v=128" ... >

<link href="/public/doc_v128.css" ... >

Я думал, может быть, какой-нибудь браузер примет ?v=128 как более динамичный контент и перезагрузит его до истечения 10 лет?

В противном случае срок действия обоих файлов истечет через 10 лет, а когда в CSS произойдут изменения, 128 можно будет обновить до 129, и он обязательно будет загружен и будет иметь совершенно новую дату истечения 10 лет?

(то же самое относится и к файлам javascript .js)

1 Ответ

4 голосов
/ 19 июля 2010

Использование изменяющегося значения в строке запроса может работать против вас. Согласно Google Page Speed ​​ Оптимизация кэширования Наилучшая производительность:

Не включать строку запроса в URL для статических ресурсов

Большинство прокси, особенно Squid up через версию 3.0 не кешировать ресурсы с "?" в их URL даже если заголовок Cache-control: public присутствует в ответе. Включить кеширование прокси для этих ресурсов, удалить строки запроса из ссылок к статическим ресурсам, а вместо закодировать параметры в файл сами имена.

Кроме того, вы можете пересмотреть 10 лет. В соответствии с разделом Определения полей заголовка> Истекает в RFC 2616, один год является максимальным.

Чтобы отметить ответ как "никогда не истекает" исходный сервер отправляет дату истечения срока действия примерно через год ответ отправлен. HTTP / 1.1 серверы НЕ ДОЛЖНЫ отправлять Истекает даты больше чем через год.

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