Великий Путь Вебмастера от идеи до интернет бизнеса
Блог Романа Чуешова
Начни зарабатывать в интернете на создании сайтов и блогов
Рубрика:Разное

Кэширование сайта и его страниц: плюсы и минусы кэша

Приветствую, дорогие читатели и подписчики моего обучающего блога. Текущую публикацию я посвятил разбору темы: «Кеширование сайта». Ее прочтение даст вам полное понимание того, что это такое, для чего используют кэширование страниц и какие существуют положительные и отрицательные стороны. В добавок к этому я расскажу, как сделать настройку системы на стороне сервера. А теперь вперед за дело!

Давайте знакомиться! Я – кэш!

Думаю, вы не раз слышали такое понятие, как кэш. Давайте вспомним, что оно обозначает.

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

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

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

Поэтому кэширование информации имеет свои преимущества:

  • Заметное уменьшение времени ожидания. Весь кэш расположен «близко» к клиенту и поэтому при вызове определенной веб-страницы с использованием данного механизма скорость отображения полного макета сайта значительно увеличивается;
  • Снижение объемов сетевого траффика. Так как загруженные веб-страницы уже лежат в базе знаний, то повторная загрузка страниц юзером не будет «съедать» траффик. На сегодняшний день это особенно важно для мобильных устройств.
  • Снижение нагрузки на сервер и базу данных. Благодаря закэшированным данным сервер не обрабатывает запрос лишний раз. То же касается и баз данных

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

К негативным аспектам относятся:

  • Сохранение старых версий веб-сервисов. Вследствие того, что пользователю выводится на экран уже сохраненная в прошлом копия страницы, при изменении ее дизайна и других объектов первый может не заметить этого. Для решения описанной проблемы используют специальный показатель времени, после которого осуществляется автоматическая генерация нового кэша.

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

Настройка системы кэширования

Ускоряем работу сайта

Как вы уже поняли, данный процесс является очень полезным и при его правильной настройке можно оптимизировать результаты работы и загрузки веб-сервиса.

Поэтому кэш в браузере и конкретно программных продуктов можно как отключать полностью, так и включить по всем пунктам.

Так, например, известные движки имеют свои встроенные процессы. Начну с WordPress.

Названный CMS имеет три режима сохранения копий данных: кэширование страниц, объектов и транзитное.

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

Названные режимы можно спокойно использовать для конкретного проекта. А также можно воспользоваться одним из популярных плагинов. Это W3 Total Cache и WP Super Cache

Теперь перейдем к Joomla 3. Данный движок также имеет три режима работы, однако их названия несколько отличаются, как и реализация. Так, существует отключение кэширования, подключение стандартного и прогрессивного хранения копий. Обычно используется второй режим. Конечно же и для этой CMS существуют соответствующие плагины.

Ну а теперь я хочу рассказать вам о более общих способах настройки. К ним относится указание плавил кэширования через документ .htaccess и веб-сервер nginx.

.htaccess

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

Чтобы ускорить загрузку сайта, можно добавить в кэш статическую информацию, т.е. те ресурсы, которые практически не изменяются или меняются очень редко. Для этого следует воспользоваться модулем под названием headers, вписав в конфигурационный документ следующие строки:

<FilesMatch «.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$»>

Header set Cache-Control «max-age=2592000»

</FilesMatch>

При этом виды расширений вы можете изменять под свои нужды. Соответственно если вы хотите запретить принудительное кэширование указанных расширений, то вместо команды set пропишите unset.

Nginx

Для начала вам стоит знать, что это веб-сервер, который функционирует на Unix-подобных ОС. Т.е. сюда входят Linux, Mac OS X, Solaris и другие. А также с выпуском версии 0.7.52 nginx стал работать и под Microsoft Windows.

Для работы с ним, вам необходимо найти конфигурационный файл nginx.conf. После открытия документа найдите в нем раздел с названием server. А вот теперь в него добавьте следующие строки:

1
2
3
4
5
6
7
location ~* \.(jpg|jpeg|gif|png|swf|tiff|swf|flv)$ {
 root $webroot;
 #Все копии файлов с указанными расширениями будут сохранены на 4 месяца
 expires 4M; 
#А теперь кэшируем данные с двух сторон: на клиентской и на прокси
 add_header Cache-Control public; 
}

Если вам не нравятся предложенные варианты решения поставленной задачи, то вы можете воспользоваться встроенными средствами языка php.

Если данная статья оказалась для вас полезной, то вступайте в ряды моих дорогих подписчиков, а также делитесь ссылкой на этот блог с друзьями. До новых встреч! Пока-пока!

С уважением, Роман Чуешов

Прочитано: 511 раз
Этот блог уже читают
читай и ты!
Оставить коментарий
:p :-p 8) 8-) :lol: =( :( :-( :8 ;) ;-) :(( :o:
  • Денис

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

    29.01.2017 в 06:02
    • Роман

      У меня в админке стоит 48 часов.

      11.02.2017 в 00:02
      • Денис

        Думаю, 48 часов многовато для кэширования, другие выставляют по 12 и 24 часа. Вообще на что ориентироваться, чтобы правильно выставить время кэширования?

        04.03.2017 в 03:08
        • Роман

          Каждый выставляет время кэшеривания свое. Но я придерживась мнения от 48 часов и более. Считаю это оптимальным для комфортной и быстрой работы сайта. Не, знаю 12 явно мало, очень частые обращения к серверу, 24 тоже. Но здесь решает каждый сам для себя.

          04.03.2017 в 15:00
    • Денис

      48 часов хороши для сайта, а 12 для пользователя. Данные на странице при 48 часах кэширования приходится обновлять. Частая ситуация: получил по почте ответ, а на сайте его не видишь из-за большого времени кэширования.

      11.03.2017 в 05:52
    • Денис

      При 48 часах кэширования теряется определённая доля интерактивности. Не каждый пользователь знает, что надо обновлять страницу не по F5, а по Ctrl + F5.

      11.03.2017 в 06:10
      • Роман

        Да, возможно. Но это мой выбор.))

        13.03.2017 в 13:18
  • Денис

    В htaccess в модуль Header set Cache-Control время вписывается в секундах? Тогда число 2592000 означает 30 суток, а для nginx вы рекомендуете 4 месяца. Где правильнее?

    29.01.2017 в 06:06