{"id":13516,"url":"\/distributions\/13516\/click?bit=1&hash=37bd7b4748a2966bbc26730b25e2618c42f364e4b1fef4e1064b7cb954a0c2b0","title":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u0438 \u043e\u0442 \u00ab\u0413\u0430\u0437\u043f\u0440\u043e\u043c \u043d\u0435\u0444\u0442\u0438\u00bb","buttonText":"\u0417\u0430 \u0447\u0442\u043e?","imageUuid":"9ff0d7f7-ef07-5cab-961b-7241d5749f52","isPaidAndBannersEnabled":false}
EdgeЦентр

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

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

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

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

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

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

В этой статье — 8 функций и технологий, которые позволяют нам доставлять динамику так же быстро, как статику:

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

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

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

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

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

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

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

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

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

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

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

Схема установки TCP-соединения

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

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

Главное отличие HTTP/2 от предыдущих версий

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

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

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

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

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

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

Кроме того, в ближайшее время мы собираемся внедрить в CDN новейший протокол HTTP/3. Это значит, что наша сеть сможет передавать данные ещё быстрее и безопаснее.

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

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

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

Возьмём для примера, допустим, чат. Чтобы клиент узнал, что ему пришло новое сообщение, при использовании 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? У EdgeЦентр есть объектное хранилище, в которое можно поместить данные практически любого объёма, максимально быстро извлекать и доставлять их. Хранилище оптимизировано под работу с динамическими веб-ресурсами. Подключить его можно вместе с CDN и управлять через единую панель.

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

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

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

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

0
Комментарии
Читать все 0 комментариев
null