Динамическое ускорение сайта
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Dynamic Site Acceleration (DSA) — это группа технологий, которые делают создание динамических веб-сайтов более эффективным. [1] Производители контроллеров доставки приложений и сетей доставки контента (CDN) используют множество методов для ускорения динамических сайтов, в том числе:
- Улучшенное управление соединениями за счет мультиплексирования клиентских соединений и поддержки активности HTTP.
- Предварительная выборка некэшируемых веб-ответов
- Динамический контроль кэша
- Сжатие на лету
- Полное кэширование страниц
- Разгрузочное SSL завершение
- на основе ответа Назначение TTL (изгиб)
- TCP-оптимизация
- Оптимизация маршрута
Техники
[ редактировать ]TCP-мультиплексирование
[ редактировать ]Граничное устройство, ADC или 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]
Связь с внешней оптимизацией
[ редактировать ]Хотя и внешняя оптимизация (FEO), и DSA описывают группу методов улучшения доставки онлайн-контента, они работают над разными аспектами. Есть некоторые совпадения, такие как сжатие данных на лету и улучшенное управление кэшем, однако ключевые различия заключаются в следующем:
- FEO фокусируется на изменении фактического контента, тогда как DSA фокусируется на улучшении доставки контента, не затрагивая контент (т. е. DSA обеспечивает дословную доставку контента). DSA фокусируется на оптимизации доставки битов по сети без изменения контента, в то время как FEO стремится уменьшить количество объектов, необходимых для загрузки веб-сайтов, и уменьшить общий объем трафика. Это можно сделать путем обслуживания контента с учетом устройства (например, снижения качества изображений), минимизации , консолидации ресурсов и встраивания. Поскольку FEO меняет фактический трафик, настройка, как правило, становится более сложной, поскольку существует риск повлиять на взаимодействие с пользователем. , предоставляя контент, который был неправильно изменен.
- DSA фокусируется на сокращении времени загрузки страниц и разгрузке веб-серверов, особенно для динамических сайтов. FEO фокусируется в первую очередь на сокращении времени загрузки страниц и уменьшении пропускной способности. Тем не менее, экономия средств на исходных серверах также может быть достигнута за счет внедрения FEO, поскольку это уменьшает время загрузки страниц без переписывания кода, что, следовательно, экономит человеко-часы, которые обычно необходимы для оптимизации кода. Кроме того, доход может увеличиться за счет сокращения времени загрузки страниц.
Ссылки
[ редактировать ]- ^ «Как работает динамическое ускорение сайта? - GlobalDots» . www.globaldots.com . Архивировано из оригинала 21 января 2013 г.
- ^ «3 Действительно веские причины использовать мультиплексирование TCP | F5 DevCentral» . Архивировано из оригинала 26 февраля 2014 г. Проверено 1 мая 2014 г.
- ^ «Центр знаний IBM» . www.ibm.com . Проверено 14 ноября 2018 г.
- ^ «Что такое динамическое кэширование | раздел.io» . www.section.io . Проверено 14 ноября 2018 г.
- ^ «Выполняет ли Cloudflare предварительную выборку?» . Поддержка Cloudflare . Проверено 14 ноября 2018 г.
- ^ «Amazon Route 53 добавляет маршрутизацию на основе задержки» .
- ^ http://www.akamai.com/dl/feature_sheets/fs_edgesuite_sureroute.pdf . [ только URL-адрес PDF ]
- ^ «Выбор политики маршрутизации — Amazon Route 53» . docs.aws.amazon.com . Проверено 14 ноября 2018 г.