Динамическое ускорение сайта - Dynamic site acceleration

Dynamic Site Acceleration (DSA) - это группа технологий, которые делают доставку динамических веб-сайтов более эффективной. Производители контроллеров доставки приложений и сетей доставки контента (CDN) используют множество методов для ускорения динамических сайтов, в том числе:

Методы

Мультиплексирование TCP

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

Обычно для каждого соединения между клиентом и сервером требуется выделенный процесс, который живет в источнике на время соединения. Когда у клиентов медленное соединение, это занимает часть исходного сервера, потому что процесс должен оставаться в живых, пока сервер ожидает полного запроса. С мультиплексированием TCP ситуация иная. Устройство получает полный и действительный запрос от клиента перед отправкой его источнику, когда запрос полностью прибыл. Это разгружает серверы приложений и баз данных, которые медленнее и дороже в использовании по сравнению с ADC или CDN.

Управление динамическим кешем

HTTP имеет встроенную систему управления кешем , использующую такие заголовки, как ETag , «истекает» и «последнее изменение». Многие CDN и ADC, которые утверждают, что имеют DSA, заменили это своей системой, назвав это динамическим кэшированием или динамическим управлением кешем. Это дает им больше возможностей для аннулирования и обхода кеша по сравнению со стандартным управлением кешем HTTP.

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

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

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

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

Предварительная загрузка

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

Оптимизация маршрута

Оптимизация маршрута, также известная как «маршрутизация на основе задержки», оптимизирует маршрут трафика между клиентами и различными исходными серверами, чтобы минимизировать задержку. Оптимизация маршрута может выполняться поставщиком DNS или CDN.

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

Связь с Front-end оптимизацией

Хотя Front-end Optimization (FEO) и DSA описывают группу методов для улучшения доставки онлайн-контента, они работают над разными аспектами. Есть совпадения, такие как сжатие данных на лету и улучшенное управление кешем, однако основные различия заключаются в следующем:

  • FEO фокусируется на изменении фактического контента, тогда как DSA фокусируется на улучшении доставки контента, не затрагивая контент (т. Е. DSA имеет дословную доставку контента). DSA фокусируется на оптимизации доставки битов по сети без изменения содержимого, в то время как FEO стремится уменьшить количество объектов, необходимых для загрузки веб-сайтов, и уменьшить общий объем трафика. Это может быть выполнено с помощью обслуживания контента с учетом особенностей устройства (например, снижение качества изображений), минификации , консолидации ресурсов и встраивания Поскольку FEO изменяет фактический трафик, настройка имеет тенденцию быть более сложной, поскольку существует риск влияния на взаимодействие с пользователем. , показывая содержание, которое было неправильно изменено.
  • DSA фокусируется на сокращении времени загрузки страниц и разгрузке веб-серверов, особенно для динамических сайтов. FEO фокусируется в первую очередь на сокращении времени загрузки страницы и уменьшении пропускной способности. Тем не менее, экономия затрат на исходных серверах также может быть достигнута за счет внедрения FEO, поскольку он уменьшает время загрузки страницы без переписывания кода, что, следовательно, экономит человеко-часы, которые обычно необходимы для оптимизации кода. Кроме того, доход может увеличиться за счет сокращения времени загрузки страницы.

Ссылки