Управление кэшированием

Написание HTTP-заголовков для управления кэшированием файлов и страниц. Работа с локальным и публичным кэшем.

  • 00:00:12 - Client-Server
  • 00:00:27 - Proxy
  • 00:05:08 - Cache
  • 00:07:06 - HTTP
  • 00:07:44 - No Store Anywhere
  • 00:09:27 - Cache with Timeout
  • 00:10:53 - Public Cache
  • 00:11:28 - Private Cache
  • 00:11:50 - Time Validation
  • 00:13:49 - Check by Time
  • 00:14:05 - Cache is Valid
  • 00:14:22 - Cache is Expired
  • 00:15:42 - Time Validation After Expiration
  • 00:21:07 - Entity Tag Validation
  • 00:22:44 - Cache is Valid
  • 00:24:16 - Weak Entity Tag Validation
  • 00:29:55 - Vary
  • 00:31:17 - Proxy
  • 00:38:21 - Request
Скрытый контент (код, слайды, ...) для подписчиков. Открыть →
Дмитрий Елисеев
elisdn.ru
Комментарии (8)
fedot

Спасибо

Ответить
ProMix

Добрый день! Хотел узнать, а вот OPCache и APCu использовать в dev окружении нужно или не нужно? У меня приложение без опкеша загружается примерно 42секунды, поставил опкеш стало 8 секунд.

Ответить
Дмитрий Елисеев

Обычно на локальной машине не нужно, так как при разработке файлы часто меняются и при сильном кешировании может показываться старый результат вместо нового. Но если включать в режиме слежения за изменениями файлов, то можно.

Ответить
ProMix

Спасибо, Дмитрий! Смотрел на выходных "MoreView" интересно было, спасибо!

Ответить
Артем

Очень много полезной и новой для меня информации. Спасибо! Получается с использованием ETag можно кешировать страницу целиком, легко инвалидируя данные. В список вещей, которые нужно так же включать в подсчёт хеша, можно добавить наличие авторизации. Хотя, наверно HTML кешировать возможно лишнее, поскольку её обьем не очень большой, а высчитывание хэша только добавляет нагрузку на сервер.

Ответить
Дмитрий

Здравствуйте! Спасибо за полезные уроки! Что значит для сервера "страница изменилась"? Что с чем он сравнивает? И как быть с файлами стилей (внешних ресурсов), распространяется ли заголовок кеширования и на них или там все по другому?

Ответить
Дмитрий Елисеев

Что значит для сервера "страница изменилась"? Что с чем он сравнивает?

Браузер при запросе на сервер может посылать текущее время в заголовке If-Modified-Since: <date> или прошлый ETAG в заголовке If-None-Match: <ETAG>. И сервер сравнивает своё время модификации страницы или текущий ETAG страницы именно с ними.

Ответить
Дмитрий Елисеев

И как быть с файлами стилей (внешних ресурсов), распространяется ли заголовок кеширования и на них или там все по другому?

Работает также. Серверу Nginx можно для стилей и картинок указать настройку вроде expires 1d; и он автоматически будет посылать заголовки кеширования на день с проверкой по дате изменения файла.

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий

Или войти через:

Yandex
MailRu
GitHub
Google