Тематические статьи →

Браузерное или клиентское кеширование

Кэши­ро­ва­ние ста­ти­че­ских ресур­сов (кар­ти­нок, скрип­тов, сти­лей) и неиз­ме­ня­ю­щихся стра­ниц на сто­роне бра­у­зера может сэко­но­мить время загрузки стра­ниц, если поль­зо­ва­тель посе­щает сайт мно­го­кратно или при посе­ще­нии про­смат­ри­вает несколько стра­ниц, кото­рые исполь­зуют оди­на­ко­вые ресурсы.

Чеще всего на сто­роне бра­у­зера кешируются файлы изображений, JS и CSS фай­лы. Чуть реже имеет смысл кэши­ро­вать стра­ницы и бинар­ные файлы (медиа-фай­лы, PDF, ска­чи­ва­е­мые доку­менты и архивы и т.д.).

Ста­ти­че­ские ресурсы должны иметь хотя бы недель­ное время жизни кэша, а лучше кеши­ро­вать их сразу на год. Таким обра­зом, эти ресурсы будут только один раз ска­чи­ваться с сер­ве­ра, а затем бра­у­зер будет либо сразу исполь­зо­вать локаль­ную копию (если ука­зан заголовок Expires или Cache-Control), либо после про­верки на неиз­мен­ность (если ука­зан заголовок Last-Modifed или ETag).

Заго­ловки Expires и Cache-Control: max-age

В каче­стве зна­че­ния у этих заго­лов­ков исполь­зу­ется дата. До тех пор, пока она не наста­ла, бра­у­зер будет без каких-либо допол­ни­тель­ных про­ве­рок исполь­зо­вать заке­ши­ро­ван­ную вер­сию ресурса. Expires под­дер­жи­ва­ется чуть шире, чем Cache-Control: max-age, поэтому лучше исполь­зо­вать именно его.

Заго­ловки Last-Modifed и ETag

В каче­стве зна­че­ния заго­ловка Last-Modifed исполь­зу­ется дата, а для заго­ловка ETag — про­из­воль­ная стро­ка. Если исполь­зу­ются эти заго­лов­ки, то бра­у­зер, преж­де чем исполь­зо­вать заке­ши­ро­ван­ный ресурс, полу­чит с сер­вера теку­щее зна­че­ние заго­ловка и срав­нит его с заго­лов­ком заке­ши­ро­ван­ной вер­сии — если дан­ные сов­па­дут, то будет исполь­зо­ваться локаль­ная вер­сия, а если нет — про­изой­дёт повтор­ная загруз­ка. Запросы про­верки про­ис­хо­дят быст­рее, чем пол­ная загрузка ресур­сов, что даёт при­рост про­из­во­ди­тель­но­сти сайта при повтор­ном исполь­зо­ва­нии ресур­сов.

Опти­маль­ная стра­те­гия кли­ент­ского кеши­ро­ва­ния

Для редко меня­ю­щихся фай­лов стоит поставить Expires на дату, кото­рая насту­пит через год, а в момент изме­не­ния этих ресур­сов исполь­зо­вать метод «отпе­чат­ков паль­цев» (fingerprinting)— добав­лять к имени файла неболь­шую часть хеша, кото­рая фоми­ру­ется на основе его содер­жа­ния. Таким обра­зом, вся ста­тика все­гда заке­ши­ро­вана на кли­ен­те, а при изме­не­нии этой самой ста­тики меня­ются имена фай­лов и они авто­ма­ти­че­ски пере­за­гру­жа­ются бра­у­зером.

Соб­ственно техника fingerprinting активно исполь­зу­ется для ста­тич­ных ресур­сов (сти­лей и скрип­тов) во мно­гих фрейм­вор­ках (в част­но­сти, в Ruby on Rails). А мас­со­вую про­ста­новку для всех типов ста­тич­ных фай­лов заго­ловка Expires можно реа­ли­зо­вать на сто­роне веб-сер­вера (в nginx, напри­мер).

Поделитесь с друзьями:


Информация о публикации:

Материал опубликован в 2014 году. Эта статья о веб-разработке и о веб-технологиях. При пере­пуб­ли­ка­ции обя­за­тельно ука­за­ние пер­во­ис­точ­ника в виде гипер­тек­сто­вой ссылки на сайт web-creator.ru

Воспользуйтесь нашими
знаниями и опытом

Отправьте нам сообщение при помощи формы. Или напишите на e-mail s@web-creator.ru

Мы максимально оперативно ответим Вам по электронной почте или перезвоним.

При отправке сообщения через форму, укажите пожалуйста предпочтительный способ связи с Вами: телефон или адрес электронной почты. Мы сможем ответить Вам подробнее, если Вы напишете что-то о запланированном проекте или предполагаемых задачах.

Либо просто позвоните нам по номеру: +7 495 215-1501

Мы работаем по будним дням с 10 до 19 часов.

Комплексные услуги

Реализация «под ключ» проектов по созданию различных видов сайтов, разработка веб-приложений для автоматизации бизнес-процессов, ведение контекстных и медийных рекламных кампаний, поисковое продвижение, комплексная поддержка веб-проектов, консалтинговые услуги.