Что такое кэш сайта и зачем он нужен?
На данный момент на моём блоге рассмотрен весь цикл создания сайта на CMS для OpenCart и WordPress.
Написаны статьи об их установке, расширении их стандартного функционала за счёт модулей и шаблонов, а также рассмотрен перенос готовых продуктов на хостинг для каждого движка в отдельности.
Базовые знания вы получили. Теперь пришло время поговорить о некоторых секретах данных CMS, которые помогут вам при дальнейшей их доработке, оптимизации и даже при разработке самостоятельных дополнений под данные платформы.
А начнём мы данный цикл статей с общих понятий и сегодня мы рассмотрим что такое кэш сайта и зачем он нужен.
Что такое кэш сайта?
Кэш сайта – это совокупность наиболее часто используемых в процессе работы объектов: изображений, html-шаблонов, файлов js, css, а также результатов запросов в базу данных сайта.
Процесс занесения объектов ресурса в кэш называется кэшированием сайта.
Надо сказать, что понятия кэша и кеширования не ново. Впервые оно прозвучало в далёком 1968 году в статье журнала IBM System Journal о модернизации памяти в разрабатываемой тогда модели компьютеров IBM System/360 (S/360).
В этой же публикации были изложены основные принципы кэширования, которые актуальны и по сегодняшний день.
Основное предназначение кэша сайта, как и любого другого, — это ускорение работы веб-ресурса, программы, сервиса и других продуктов, которые его используют.
Увеличение быстродействия достигается за счёт того, что извлечение данных из кэша занимает намного меньше времени, чем их запрос из непосредственного хранилища.
К тому же, перед помещением данных в кэш они нередко обрабатываются, обжимаются, уменьшаются в размерах, что дополнительно увеличивает скорость работы.
Приложения взаимодействуют с кэшом по следующей схеме:
- При первом запросе данных они заносятся в кэш;
- При повторном вызове они уже берутся из кэша, а не из источника;
- Если кэш пуст или данные считаются устаревшими, то происходит их запрос по прямому пути и данный алгоритм повторяется.
Настройки времени хранения кэша сайта хранятся в файлах конфигурации веб-серверов и самого ресурса.
Стоит сказать, что понятие кэша является универсальным и не ограничивается только сайтами. Его можно встретить в мобильных и дэсктопных приложениях, на уровне операционных систем и даже аппаратного обеспечения. Одним словом, для всего, где важен вопрос быстродействия.
Но, поскольку нашей целью является самостоятельная разработка ресурса, то мы поговорим именно о кэше на сайте.
Где происходит кэширование сайта и что это такое?
Стоит сказать, что кэширование данных – это многоступенчатый процесс, т.к. создание кэша происходит на различных уровнях.
Различают серверное и клиентское кэширование сайта.
Серверное кэширование сайтаКак следует из названия, при данном типе кэширования файлы хранятся на стороне сервера (хостинга). Для этого используется механизм кэширования, присущий платформе вашего ресурса (CMS, фрейворк и т.д.).
В данном случае, как правило, кэшируются статические html-страницы и результаты запросов в БД. При этом кэш сайтов может храниться как в виде отдельных файлов, так и размещаться в оперативной памяти вашего удалённого сервера (с использованием memcached).
На некоторых высоконагруженных проектах для хранения кэша сайта выделяют даже отдельный сервер.
Настройки кэширования сайта в данном случае расположены в коде и специальных файлах конфигурации вашего ресурса. Точное их расположение можно указать в технической документации по используемой вами платформе.
Клиентское кэширование сайтаВ данном случае кэш сайта хранится на стороне клиентов, т.е. это кэш веб-браузера ваших пользователей, через которые они получают доступ к ресурсу.
Это его нам всегда рекомендуют очищать при обращении в тех. поддержку сайта при каких-то неисправностях.
В кэше браузеров хранятся исключительно статические файлы (те, которые не изменяются в процессе работы) – это css-, js- и медиафайлы (изображения, видео и т.д.).
Настройки кэширования сайта в веб-браузерах клиентов хранятся в конфигурационных файлах веб-серверов.
Если ваш ресурс на хостинге использует Apache, то настройки кеширования сайта будут храниться в файле .htaccess в виде директив max-age и expires, если же используется Nginx, то ищите соответствующие правила в nginx.conf и вызываемых в нём файлах.
У множества хостинг-провайдеров есть настройки кэширования сайта. Благодаря этим инструментам можно удобно и комфортно исправить файлы конфигураций веб-серверов, о чём мы говорили ранее.
Но это не настройки кэша на самом хостинге, как можно подумать сначала. То есть, сам хостинг не создаёт кэш сайтов в интернете, а просто говорит веб-браузерам клиентов, как им нужно производить кэширование.
Из полезных инструментов, позволяющих ускорить работу ресурса, у хостинг-провайдеров доступно gzip-сжатие (которое также возможно настроить вручную самостоятельно), уменьшающее размер файлов перед получением их веб-клиентом.
Но к кэшированию этот механизм не имеет никакого отношения.
В идеале, для достижения максимального быстродействия, должны использоваться оба типа кэширования. Но на практике, к сожалению, это встречается не всегда.
Чем полезны знания о кэше сайта?
Во-первых, данная информация будет полезна при оптимизации вашего сайта и позволит значительно увеличить его быстродействие.
А это, в свою очередь, увеличит число ваших пользователей и снизит процент их отказов, что положительно скажется на позициях вашего ресурса в поисковой выдаче.
Такая вот интересная цепная реакция 🙂
Поэтому при оптимизации ресурса не забывайте пользоваться специальными инструментами, например, PageSpeed Insights от Google, который помимо скорости загрузки и удобства вашего ресурса для пользователей даст список необходимых рекомендаций.
Ну и, во-вторых, мы не задумываемся о кэше сайта до тех пор, пока перед нами не возникают определённые трудности, связанные с особенностями его функционирования.
Как в старой шутке, перефразированной под нашу тему: «– Ты кэш видишь? – Нет. – А он есть» 🙂
Но, в один прекрасный момент, вам понадобилось изменить картинку на своём ресурсе и вы загрузили её обратно с тем же именем…
Знакомая ситуация? 🙂 Тогда не буду говорить, что вы увидели в итоге.
Или вы стали разработчиком (или таковый являетесь) и в процессе разработки какого-то модуля, плагина или шаблона вы вносите огромное число правок в исходный код. Обновляете страницу…
В обоих ситуациях, благодаря кэшированию (если не настроена автоматическая очистка кэша сайта), вы увидите старые данные.
Поэтому данные знания помогут вам в дальнейшем избежать этих и подобных проблем путём очистки кэша сайта на необходимом уровне.
Вот и всё, что я хотел вам рассказать.
Надеюсь, что данная информация была для вас полезной и помогла ответить на большинство вопросов, связанных с кэшированием сайта, а также в решении ваших проблем.
В дальнейших публикациях мы с вами обязательно поговорим о том, как можно очистить и вовсе отключить кэш сайта на базе различных CMS, а также, как данное действие можно сделать в различных веб-браузерах (Chrome, Firefox, Opera и т.д.).
Пишите в комментариях, что вам понравилось или нет в сегодняшней статье, и ставьте свои оценки. Также мне будет приятно, если вы поделитесь данной статьёй со своими друзьями в социальных сетях и привлечёте их к обсуждению.