Best Practices for Speeding Up Your Web Site / Рекомендации лучших вебоводов для ускорения вашего сайта: Add an Expires or a Cache-Control Header / Используйте истечение срока или управление кешированием в заголовке
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Есть два аспекта данного правила: Alexasa 15.08.12 в 15:51 |
|
|
Для статических компонентов применяйте правило "без срока давности", устанавливая заголовок Expires далеко вперед. Alexasa 15.08.12 в 15:55 |
||
|
Дизайн веб-страниц становятся все богаче, что означает больше скриптов, стилей, картинок и флеша. Посетителю, который в первый раз зашел на вашу страницу, придется сделать запросы ко всем компонентам, однако в последующем сроки истечения файлов позволят закешировать компоненты. Это позволит избежать избыточных запросов при повторных заходах. Заголовки с датой истечения чаще всего используются для картинок, но их необходимо использовать и для всех остальных компонентов: скрипты, стили и флеш. Alexasa 16.08.12 в 14:04 |
||
|
Браузеры (и прокси) используют кеширование для уменьшения количества и размера HTTP запросов, ускоряя тем самым загрузку страниц. Веб-сервер использует дату истечения в заголовке HTTP ответа, чтобы указать клиенту сколько времени кешировать определенный компонент. Так выглядит заголовок, указывающий браузеру, что данный ответ действителен до 15 апреля 2010 года: Alexasa 20.08.12 в 09:24 |
||
|
<b>Expires: Thu, 15 Apr 2010 20:00:00 GMT</b> Alexasa 20.08.12 в 13:40 |
||
|
Если вашим сервером является Apache, используйте директиву ExpiresDefault для установки срока истечения относительно текущей даты. Следующий пример показывает срок истечения в 10 лет со времени получения запроса: Alexasa 20.08.12 в 13:43 |
||
|
<b>ExpiresDefault "access plus 10 years"</b> Alexasa 20.08.12 в 13:43 |
||
|
Не забывайте также, если вы используете срок истечения с отдаленной датой, вам придется изменять название файла каждый раз, как будет меняться содержание компонента. У себя в Yahoo! мы это делаем частью процесса разработки: номер версии включается в имя файла, например, yahoo_2.0.6.js. Alexasa 21.08.12 в 10:09 |
||
|
Использование в заголовке отсроченной даты истечения действует только при повторном заходе пользователя на страницу. При первом заходе пользователя, когда браузерный кеш еще пуст, это никак не влияет на количество HTTP запросов. Таким образом эффективность данного метода зависит от частоты захода к вам пользователя с уже заполненным кешем. (Заполненный кеш - тот, который уже содержит все компоненты страницы). Мы исследовали это на Yahoo! и обнаружили 75-85% полностью кешированных страниц. Используя срок истечения в заголовках, вы увеличиваете количество компонентов, кешируемых браузером и повторно используемых без посылки даже единого байта через интернет-подключение пользователя. Alexasa 22.08.12 в 09:46 |
