Внимание
У Вас отключена поддержка Cookie в браузере. Возможно некорректное отображение сайта!

Как CDN ускоряет доставку динамического контента

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

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

А динамический контент уникален для каждого пользователя, и его нельзя кешировать. Значит, и ускорить доставку не получится?

На самом деле, если CDN поддерживает определённые функции, она отлично справится и с ускорением динамики. У G-Core Labs CDN есть всё необходимое для этого.

Рассказываем о 8 технологиях, которые помогают нам доставлять динамический контент так же быстро, как и статический.

1. Отличная связность

Быстрая доставка контента во многом зависит от связности сети.

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

Маршрут от источника к пользователю

У нас более 6 000 партнёров по пирингу. Это значит, что мы можем построить лучший маршрут и передать информацию от источника до юзера максимально быстро.

2. Поддержка HTTP/2

HTTP/2 — это последняя версия протокола HTTP. Она была выпущена в 2015 году.

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

Чтобы отправить информацию, HTTP сначала должен установить TCP-соединение. Для этого требуется «тройное рукопожатие»:

  1. Отправитель посылает запрос на установку соединения — сообщение SYN и порядковый номер переданного байта.
  2. Получатель в ответ посылает сообщение SYN, подтверждает получение данных сообщением ACK и отправляет номер байта, который должен быть получен следующим.
  3. Отправитель тоже подтверждает, что получил информацию, и посылает номер следующего ожидаемого байта.

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

Схема TCP-соединения

В предыдущих версиях HTTP для передачи каждого элемента (JаvaScript, CSS, изображения и другое) открывалось отдельное TCP-соединение. «Тройное рукопожатие» нужно было проводить каждый раз, и это сильно замедляло доставку.

В HTTP/2 для всех этих данных устанавливается единое TCP-соединение. При этом разные типы информации могут отдаваться параллельно. Это значительно экономит время на передачу контента.

Передача данных по HTTP 1.1 и по HTTP/2

Как ещё HTTP/2 помогает ускорить доставку:

  • Это бинарный протокол. Использование бинарного формата вместо текстового значительно облегчает выполнение команд. В таких протоколах меньше ошибок, меньше нагрузка на сеть и, как следствие, меньше задержек.
  • Умеет сжимать заголовки. Заголовок — это тоже данные. А чем больше данных передаётся, тем медленнее они доходят до пользователя. HTTP/2 сжимает заголовки по алгоритму Хаффмана и опускает повторяющиеся.
  • Доступна приоритезация запросов. Определённую информацию можно назначить приоритетной — тогда она будут отдаваться в самом начале и загружаться быстрее. В первом приоритете можно отдавать самые важные элементы страницы, которые должны отобразиться у пользователя в первую очередь.
  • Функция Server Push. Позволяет предугадывать, какие данные понадобятся клиенту, и отправлять их ещё до того, как поступил запрос. Это ускоряет загрузку, снижает количество запросов, а значит, и уменьшает нагрузку на источник.

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

Это значит, что даже если передача по HTTPS не настроена на источнике, то вы всё равно можете доставлять контент безопасно с помощью нашей сети.

Вы можете использовать собственные SSL-сертификаты. А можете получить бесплатный Let’s Encrypt — сертификат у нас.

При этом благодаря использованию HTTP/2 и TLS 1.3 безопасное подключение не будет замедлять отдачу контента. Ваше веб-приложение будет работать быстро и безопасно.

3. Поддержка WebSocket

WebSocket — это независимый протокол на основе TCP. Он даёт возможность обмениваться сообщениями между клиентом и сервером в режиме реального времени.

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

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

Минусы такого подхода:

  • Увеличивается количество запросов к серверу. Из-за этого растёт нагрузка и падает скорость обработки запросов.
  • Данные обновляются медленнее. Так как браузер посылает запросы с определённой периодичностью, передать новое сообщение клиенту он может не сразу. Это создаёт задержки при доставке контента.

WebSocket же устанавливает постоянное соединение. И когда появится новое сообщение, сервер сразу отправит его клиенту.

Разница между HTTP и WebSocket

Это сокращает количество запросов и увеличивает скорость отдачи данных.

Если вы хотите быстро доставлять часто меняющийся динамический контент (сообщения в чатах, push-уведомления и любые другие данные, которые постоянно обновляются на сайте), без WebSocket вам не обойтись.

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

4. Использование IPv6

IPv6 — более современная версия протокола IP. Он был разработан главным образом для того, чтобы решить проблему нехватки IP-адресов. Если в IPv4 для создания адреса используется 32-битная система, то в IPv6 — 128-битная.

Адрес IPv6 — это восемь 16-битных блоков, разделённых двоеточием. И общее количество IP-адресов, которые можно создать, составляет 2128 — это более 300 млн адресов на каждого жителя планеты. Такого количества должно хватить каждому устройству.

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

Меньшая нагрузка на сетевое оборудование. Эта версия протокола не использует NAT — технологию для преобразования приватных адресов в публичные.

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

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

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

Более простые заголовки пакетов. В новой версии из них убрали несущественные элементы. Это упростило обработку, снизило нагрузку на маршрутизаторы и в целом сократило объём передаваемых данных.

Более быстрая маршрутизация. Структура адреса IPv6 устроена так, что маршрутизаторы на каждом уровне сети (крупные провайдеры, подсети, сети организаций) обрабатывают не весь адрес, а его часть. Это уменьшает размер таблицы маршрутизации, а значит, сокращает время на обработку.

Определяет чувствительные к задержкам пакеты и передаёт их в первую очередь. Такую возможность даёт функция QoS (Quality of Service). Это специальная технология, которая умеет определять тип трафика и приоритизировать его на основании этого.

Получается, IPv6 во многом более эффективен, чем IPv4, передаёт данные быстрее. Однако, чтобы перейти на него, нужно серьёзно модернизировать свою инфраструктуру.

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

Динамический контент доставляется быстро, а вы не тратите ресурсы на апгрейд.

5. Сжатие на лету

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

Эту проблему решает использование современных алгоритмов сжатия: Gzip, Brotli и WebP.

Gzip предназначен для сжатия текстового контента. Он находит в файлах одинаковые строки и объединяет их. За счёт этого размер данных уменьшается на 60–70%.

Brotli уменьшает размер любого контента. Для сжатия он использует уже встроенный в браузеры пользователей словарь из более чем 100 000 самых часто встречающихся в интернете элементов. Алгоритм находит эти элементы в передаваемых данных, вычисляет уникальные фрагменты и передаёт только их, а неуникальные добавляет из словаря. Brotli на 20–25% эффективнее Gzip.

WebP — новый алгоритм для сжатия изображений. Он на 26% лучше PNG сжимает изображения без потерь и на 25–34% эффективнее JPG при сжатии изображений с потерями.

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

Сжатие «на лету»

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

6. Гибкие настройки кеширования

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

Очень важно настроить кеширование точно в соответствии с особенностями вашего веб-ресурса. И наша CDN даёт такую возможность.

Вы можете установить любое время кеширования или отключить его совсем.

Настройки кеширования в панели управления

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

7. Функции аутентификации на стороне провайдера

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

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

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

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

8. Облачное хранилище

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

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

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

Как это относится к CDN? У G-Core Labs есть объектное хранилище, в которое можно поместить данные практически любого объёма, максимально быстро извлекать и доставлять их. Хранилище оптимизировано под работу с динамическими веб-ресурсами. Подключить его можно вместе с CDN и управлять через единую панель.

Подведём итоги

  1. Есть мнение, что CDN может ускорить доставку только статического контента и плохо работает с динамикой. Но на самом деле, если сеть поддерживает определённые функции, она отлично справится и с ускорением динамики. G-Core Labs CDN, например, доставляет динамику точно так же быстро, как и статику.
  2. У нас 6 000+ пиринг-партнёров и отличная связность. Это даёт нам возможность построить лучший маршрут для доставки и передать данные максимально быстро.
  3. Мы используем протокол HTTP/2, который намного эффективнее предыдущих версий HTTP. Главный его плюс в том, что для передачи любых типов файлов он устанавливает только одно TCP-соединение.
  4. Наша CDN поддерживает WebSocket — протокол для передачи данных в реальном времени. Если вы доставляете часто меняющийся динамический контент, без него вам не обойтись.
  5. Ещё мы используем протокол IPv6, более эффективный в плане скорости, чем IPv4. При этом на нашей CDN вы можете использовать эту версию, даже если ваше оборудование ещё не поддерживает IPv6.
  6. Мы умеем сжимать контент на лету прямо на стороне CDN, в процессе доставки с помощью алгоритмов Brotli, Gzip и WebP.
  7. У нас гибкие настройки кеширования. А ещё мы заботимся о безопасности контента и можем взять функции аутентификации пользователей на себя, чтобы снизить нагрузку на ваши ресурсы.
  8. Вместе с CDN вы можете подключить объектное хранилище, чтобы не только эффективно доставлять, но и хранить данные.

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

А если не знаете, какой тариф выбрать, воспользуйтесь бесплатной консультацией.

Подпишитесь на полезную рассылку

Выгодные предложения и важные новости раз в месяц. Без спама