Что такое кэш сайта и зачем он нужен?

Дата публикации: 19.03.2016

chto-takoe-kehsh-sajta-i-zachem-on-nuzhenВсем привет! 🙂

На данный момент на моём блоге рассмотрен весь цикл создания сайта на CMS для OpenCart и WordPress.

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

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

А начнём мы данный цикл статей с общих понятий и сегодня мы рассмотрим что такое кэш сайта и зачем он нужен.

Что такое кэш сайта?

Кэш сайта – это совокупность наиболее часто используемых в процессе работы объектов: изображений, html-шаблонов, файлов js, css, а также результатов запросов в базу данных сайта.

Процесс занесения объектов ресурса в кэш называется кэшированием сайта.

Надо сказать, что понятия кэша и кеширования не ново. Впервые оно прозвучало в далёком 1968 году в статье журнала IBM System Journal о модернизации памяти в разрабатываемой тогда модели компьютеров IBM System/360 (S/360).

В этой же публикации были изложены основные принципы кэширования, которые актуальны и по сегодняшний день.

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

Увеличение быстродействия достигается за счёт того, что извлечение данных из кэша занимает намного меньше времени, чем их запрос из непосредственного хранилища.

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

Приложения взаимодействуют с кэшом по следующей схеме:

  1. При первом запросе данных они заносятся в кэш;
  2. При повторном вызове они уже берутся из кэша, а не из источника;
  3. Если кэш пуст или данные считаются устаревшими, то происходит их запрос по прямому пути и данный алгоритм повторяется.

Настройки времени хранения кэша сайта хранятся в файлах конфигурации веб-серверов и самого ресурса.

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

http://cccp-blog.com/wp-includes/images/banners/templatemonster/banner_content_new.png

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

Где происходит кэширование сайта и что это такое?

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

Различают серверное и клиентское кэширование сайта.

Серверное кэширование сайта

Как следует из названия, при данном типе кэширования файлы хранятся на стороне сервера (хостинга). Для этого используется механизм кэширования, присущий платформе вашего ресурса (CMS, фрейворк и т.д.).

В данном случае, как правило, кэшируются статические html-страницы и результаты запросов в БД. При этом кэш сайтов может храниться как в виде отдельных файлов, так и размещаться в оперативной памяти вашего удалённого сервера (с использованием memcached).

На некоторых высоконагруженных проектах для хранения кэша сайта выделяют даже отдельный сервер.

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

Клиентское кэширование сайта

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

Это его нам всегда рекомендуют очищать при обращении в тех. поддержку сайта при каких-то неисправностях.

В кэше браузеров хранятся исключительно статические файлы (те, которые не изменяются в процессе работы) – это css-, js- и медиафайлы (изображения, видео и т.д.).

Настройки кэширования сайта в веб-браузерах клиентов хранятся в конфигурационных файлах веб-серверов.

Если ваш ресурс на хостинге использует Apache, то настройки кеширования сайта будут храниться в файле .htaccess в виде директив max-age и expires, если же используется Nginx, то ищите соответствующие правила в nginx.conf и вызываемых в нём файлах.

У множества хостинг-провайдеров есть настройки кэширования сайта. Благодаря этим инструментам можно удобно и комфортно исправить файлы конфигураций веб-серверов, о чём мы говорили ранее.

Но это не настройки кэша на самом хостинге, как можно подумать сначала. То есть, сам хостинг не создаёт кэш сайтов в интернете, а просто говорит веб-браузерам клиентов, как им нужно производить кэширование.

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

Библиотека курсов

Но к кэшированию этот механизм не имеет никакого отношения.

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

Чем полезны знания о кэше сайта?

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

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

Такая вот интересная цепная реакция 🙂

Поэтому при оптимизации ресурса не забывайте пользоваться специальными инструментами, например, PageSpeed Insights от Google, который помимо скорости загрузки и удобства вашего ресурса для пользователей даст список необходимых рекомендаций.

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

Как в старой шутке, перефразированной под нашу тему: «– Ты кэш видишь? – Нет. – А он есть» 🙂

Но, в один прекрасный момент, вам понадобилось изменить картинку на своём ресурсе и вы загрузили её обратно с тем же именем…

Знакомая ситуация? 🙂 Тогда не буду говорить, что вы увидели в итоге.

Или вы стали разработчиком (или таковый являетесь) и в процессе разработки какого-то модуля, плагина или шаблона вы вносите огромное число правок в исходный код. Обновляете страницу…

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

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

Вот и всё, что я хотел вам рассказать.

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

В дальнейших публикациях мы с вами обязательно поговорим о том, как можно очистить  и вовсе отключить кэш сайта на базе различных CMS, а также, как данное действие можно сделать в различных веб-браузерах (Chrome, Firefox, Opera и т.д.).

Поэтому не забывайте подписываться на обновления.

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

На этом всё. Всем удачи! 🙂

P.S.: если вам нужен сайт, но нет времени самостоятельно его разрабатывать, могу порекомендовать вам своего проверенного партнёра - вебстудию Дениса Нихаева. Было не просто, но я всё-таки выбил для вас скидку 20%, что составит до 20 тысяч рублей в зависимости от выбираемого тарифа 🙂 Вот промо код - CCCP. При заказе сообщите его и скидка вам гарантирована! Друзьям тоже можете рассказать 😉

Понравилась статья? Поделись с друзьями:
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
10 голосов, в среднем: 4.6 из 5

Похожие темы

Комментариев пока нет... Будьте первым! :)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *