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

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

Методы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рекомендации

  1. ^ http://www.globaldots.com/how-dynamic-site-acceleration-works/
  2. ^ «Архивная копия». Архивировано из оригинал на 2014-02-26. Получено 2014-05-01.CS1 maint: заархивированная копия как заголовок (связь)
  3. ^ «Центр знаний IBM». www.ibm.com. Получено 2018-11-14.
  4. ^ "Что такое динамическое кеширование | section.io". www.section.io. Получено 2018-11-14.
  5. ^ "Осуществляет ли Cloudflare предварительную загрузку?". Поддержка Cloudflare. Получено 2018-11-14.
  6. ^ http://aws.amazon.com/about-aws/whats-new/2012/03/21/amazon-route-53-adds-latency-based-routing/
  7. ^ http://www.akamai.com/dl/feature_sheets/fs_edgesuite_sureroute.pdf
  8. ^ «Выбор политики маршрутизации - Amazon Route 53». docs.aws.amazon.com. Получено 2018-11-14.