Когда вам следует избегать использования CDN на вашем веб-сайте

CDN сейчас повсюду в Интернете. Ваши любимые потоковые сервисы, такие как Netflix и Hulu, используют CDN, сайты Shopify и Squarespace используют CDN по умолчанию, даже многие «обычные», нетехнологические гигантские сайты используют CDN для доставки своего веб-контента. Это поднимает вопрос, должен ли ваш сайт использовать CDN? Ответ зависит от многих факторов, характерных для вашего сайта. Мы разобьем все по разделам, чтобы вы могли просмотреть заголовки и быстро увидеть, что применимо к вашей конкретной ситуации, и решить, принесет ли CDN пользу вашему веб-сайту.

Что такое CDN?

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

Сеть доставки контента (CDN) – это группа географически распределенных серверов, которые совместно обеспечивают быструю доставку и высокую доступность интернет-контента, например страниц веб-сайтов, файлов JavaScript, изображений. , видео и т. д. Быстрая доставка и высокая доступность достигаются за счет распространения (дублирования) этого интернет-контента на несколько серверов, разбросанных по многим физическим местам. Затем пользователь может связаться с «ближайшим» сервером, чтобы быстрее получить свой контент.

В дистрибутиве с одним сервером (который есть на вашем веб-сайте без CDN) все пользователи взаимодействуют с одним и тем же веб-сервером (называемым исходным сервером). В схеме распределения CDN пользователи взаимодействуют с сервером CDN, который «ближайший» к ним. Обратитесь к рисунку ниже для визуального примера.

Когда мне следует избегать использования CDN?

1. Когда большинство посетителей вашего сайта находятся в одном и том же географическом районе

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

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

2. Когда у провайдера CDN нет серверов рядом с посетителями вашего сайта

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

3. Когда ваш веб-сайт имеет низкий трафик (применяется к CDN модели получения по происхождению)

Если ваш сайт имеет низкий трафик, вполне возможно, что CDN может замедлить работу вашего сайта. Это относится к CDN, которые используют модель «pull» для кэширования файлов с исходного сервера, а не модель «push». При использовании pull CDN CDN отвечает за извлечение нужного контента с исходного сервера для доставки посетителям.

Как работают CDN Origin Pull: вы оставляете свой контент на исходном сервере (исходном сервере веб-сайта) и переписываете все URL-адреса на своем веб-сайте, чтобы они указывали на CDN. Когда контент запрашивается, сервер CDN переходит к исходному серверу, " извлекает" контент, а затем предоставляет его посетителю. Затем CDN кэширует этот контент до определенного времени истечения срока действия. В следующий раз, когда этот ресурс будет запрошен, CDN уже сохранит его в кеше и может пропустить обращение к исходному серверу, что сэкономит время и ускорит загрузку.

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

Когда запрашивается файл, отсутствующий в кеше сервера CDN:

  1. Запрос клиента (пользователя) поступает на сервер CDN.
  2. Сервер CDN распознает, что файл не кэширован (так называемый промах кеша).
  3. Сервер CDN «извлекает» файл с исходного сервера вашего веб-сайта, возвращает его клиенту и кэширует для следующего раза. Дополнительный шаг перехода с сервера CDN на исходный сервер увеличивает время загрузки страницы.

Когда запрашивается файл в кэше сервера CDN:

  1. Запрос клиента (пользователя) поступает на сервер CDN.
  2. Сервер CDN распознает, что файл кэширован и срок его действия не истек, поэтому он возвращает файл клиенту. Этот шаг может сэкономить время за счет пропуска исходного сервера.
  3. Файлы в кеше не обязательно являются общими для каждого сервера CDN (это зависит от поставщика CDN), поэтому файл может находиться в кеше на одном сервере CDN и вне кеша на другом сервере CDN. Если ваш веб-сайт не получает достаточно трафика, чтобы ваши файлы оставались «горячими» (в кеше) во всех местоположениях CDN, то CDN потенциально может очень часто обслуживать посетителей, промахнувшихся из кеша, что может сделать ваш сайт медленнее, чем неиспользование CDN вообще.

Для веб-сайтов с низким трафиком CDN, вероятно, не самый экономичный выбор для сокращения времени загрузки вашего веб-сайта. Вместо этого попробуйте бесплатный плагин для веб-сайта Padeo. Бесплатная версия идеально подходит для сайтов с низким трафиком, поскольку вы получаете все преимущества и функции за первые 500 посещений сайта каждый месяц. И это совершенно бесплатно, так что вы ничего не платите, если только вы не обновите свой план самостоятельно.

4. Когда на вашем сайте много динамического контента

Контент сайта бывает двух типов: статический и динамический.

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

Как кэширование обычно работает со статическим контентом

Обычный процесс веб-кэширования заключается в том, что кеш сохраняет копию статического файла (изображение, сценарий и т. д.) при обслуживании контента, чтобы он был ближе к пользователю и доставлялся быстрее при следующем запросе. . Браузеры и сети доставки контента (CDN) могут кэшировать статический контент в течение заданного периода времени и предоставлять его пользователям до тех пор, пока контент продолжает запрашиваться. Это возможно, потому что статическое содержимое не меняется со временем; один и тот же файл может доставляться пользователям снова и снова.

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

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

Некоторые CDN могут кэшировать динамический контент, но это сложно:

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

Например, Cloudflare поддерживает кэширование динамического контента с помощью Cloudflare Workers, которые по сути представляют собой бессерверные функции JavaScript, которые работают на серверах CDN Cloudflare и могут реагировать на пользовательские события и входные данные для создания динамического контента. Эта дополнительная функциональность добавляет много сложности, и они не совсем подключи и работай. Вам потребуются знания уровня разработчика, чтобы писать и поддерживать бессерверный код, который сообщает сервису, как реагировать на пользовательские события и входные данные. Эти дополнительные затраты и техническое обслуживание могут быть оправданы, если у вас есть бюджет и ресурсы. Если вы ищете более быстрый веб-сайт и не хотите выяснять, подойдет ли вам CDN, рассмотрите службу предиктивной предварительной загрузки Padeo.

5. Если на вашем веб-сайте много веб-страниц с личной или конфиденциальной информацией

Наконец, давайте поговорим о заголовке Cache-Control. Этот заголовок HTTP содержит инструкции по кэшированию HTTP-запросов и ответов. Сервер может установить для заголовка значение Cache-Control: private, чтобы указать, что ответ может храниться только в кеше браузера. Это означает, что промежуточные агенты (например, серверы CDN) не могут кэшировать ответы с помощью этой директивы.

В некоторых отраслях (здравоохранение, юриспруденция) есть веб-сайты, на которых из соображений конфиденциальности для большинства страниц установлено значение Cache-Control : private. Padeo может предварительно загружать страницы с конфиденциальной или личной информацией, которую CDN и аналогичные сервисы не могут кэшировать, поскольку Padeo предварительно загружает страницу в кеш браузера клиента, то есть данные никогда не покидают устройство посетителя веб-сайта.

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