Сколько времени будет полезно установить в заголовке expire для сайта?
"Веб-страницы становятся все более сложными с появлением большего количества сценариев, таблиц стилей, изображений и Flash. При первом посещении страницы может потребоваться несколько HTTP-запросов для загрузки всех компонентов. При использовании заголовков Expires эти компоненты становятся кешируемыми, что позволяет избежать ненужных HTTP-запросов при последующих просмотрах страниц. Заголовки Expires чаще всего связаны с изображениями, но их можно и нужно использовать для всех компонентов страницы, включая скрипты, таблицы стилей и Flash ".
Как написано в Yslow.
У меня вопрос, сколько времени было бы полезно установить в заголовке expire для веб-сайта, который имеет несколько таблиц стилей, Flash-заголовки, Javascripts, изображения, PDF, файлы MS Excel, PPT и т. д.?
Если я хочу установить одинаковое время истечения для всех вещей.
2 ответа
Если ресурсы вашей страницы (images/css/js), как правило, не изменяются и являются статичными, вы можете установить для заголовка expires что-то далеко, например, 1 год.
Для самих страниц это действительно зависит от содержания. Если ваш контент изменяется очень часто, вы должны убедиться, что заголовок expires не слишком большой, иначе ваши посетители будут получать устаревший контент.
Если вы думаете о сайте, подобном SO, контент меняется настолько часто, что заголовок expires на странице очень маленький. Из заголовков похоже, что они используют максимальный возраст 60 секунд и имеют заголовок с истекшим сроком действия на 1 минуту от текущего.
Что я делаю, так это устанавливаю высокое значение срока годности файлов CSS и JavaScript, например, 1 или 5 лет. Когда я изменяю таблицы стилей или JS-файлы, я изменяю номер версии в их URL-адресах, чтобы предотвратить отправку устаревших файлов из кэша.
Похоже, именно это и делает SO:
<link rel="stylesheet" href="http://sstatic.net/stackru/all.css?v=e27c9b7474df">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script src="http://sstatic.net/js/question.js?v=b05e8725a843" type="text/javascript"></script>
Поэтому, когда они меняют таблицу стилей, они меняют all.css?v=e27c9b7474df
в all.css?v=some new version
, question.js
Файл javascript следует тем же правилам. Но имена файлов тоже подойдут, вы можете вызывать ваши файлы CSS/JS all-1.css
затем измените его на all-2.css
и т. д. Фактический формат номера версии зависит от вас, пока изменяется URL.