Статья опубликована в рамках: Научного журнала «Студенческий» № 10(30)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6
АНАЛИЗ КРУГОВОЙ ЗАДЕРЖКИ ПРИ ИСПОЛЬЗОВАНИИ ВЕБ-ПРОТОКОЛОВ HTTP И WEBSOCKET
Необходимость в анализе временных задержек загрузки веб-сайтов (RTT – round-trip time) является важной особенностью исследования веб-протоколов. Поскольку на сегодняшний день веб-сайты могут достигать размеров до нескольких мегабайт, оценка временной задержки при их загрузке является актуальной при проведении сравнительного анализа веб-протоколов и методов их использования.
При исследовании круговых задержек веб-протоколов необходимо рассматривать два типа веб-сайтов. К первому типу относятся т.н. статические сайты. Для их работы не используют протокол WebSocket, т.к. он предназначен для обеспечения работы приложения в режиме реального времени. На сегодняшний день статические сайты используют либо протокол HTTP/1.1, либо протокол HTTP/2.
Особенной частью протокола HTTP/2 является его обратная совместимость с предыдущими версиями. Это позволяет исследовать одни и те же сайты при поддержке протокола HTTP/2 и без нее, что позволяет определить разницу в круговых задержках для веб-сайта, в зависимости от используемой версии протокола (таблица 1, таблица 2).
Таблица 1.
Показатели RTT для браузера Firefox
Адрес сайта |
Время загрузки (HTTP/1.1, HTTP/2) |
Youtube.com |
27.755, 23.302 |
Stackoverflow.com |
5.474, 5.903 |
Reddit.com |
16.403, 13.421 |
Duckduckgo.com |
1.962, 3.243 |
Twitter.com |
5.599, 6.538 |
En.wikipedia.org |
2.908, 3.381 |
W3schools.com |
3.365, 4.450 |
Paypal.com |
8.006, 13.834 |
Upwork.com |
23.100, 23.974 |
Таблица 2.
Показатели RTT для браузера Google Chrome
Адрес сайта |
Время загрузки (HTTP/1.1, HTTP/2) |
Youtube.com |
15.394, 14.229 |
Stackoverflow.com |
4.428, 3.981 |
Reddit.com |
15.567, 12.325 |
Duckduckgo.com |
2.283, 2.250 |
Twitter.com |
3.164, 3.101 |
En.wikipedia.org |
2.137, 2.545 |
W3schools.com |
3.330, 3.227 |
Paypal.com |
4.297, 4.542 |
Upwork.com |
17.243, 24.167 |
Исходя из полученных результатов, на круговые задержки оказывает влияние не только тип используемого протокола, но и тип браузера клиента. Согласно полученным результатам, браузер Google Chrome показывает лучшие результаты для протокола HTTP/2, а браузер Firefox – для HTTP/1.1. В усредненном значение протокол HTTP/1.1 осуществляет загрузку сайтов быстрее в 1.30 раза в браузере Firefox, протокол HTTP/2 быстрее в 1.03 раза в браузере Google Chrome.
Полученные результаты демонстрируют, что разница в версии протокола HTTP имеет минимальный эффект на круговой задержке. Отсюда можно заключить, что HTTP/2 не оказывает существенное влияние на круговых задержках.
Ко второму типу веб-сайтов относятся т.н. «динамические» сайты. Их особенностью является возможность динамически изменяться в ответ на действия пользователя. Динамические веб-сайты строятся на разных протоколах и при использовании разных алгоритмов.
Для исследования динамических сайтов тестировалось приложение реального времени, реализованного наиболее распространенными технологиями: AJAX (при использовании протокола HTTP/1.1 и алгоритма «long-polling», AJAX и технологии Server-Sent Events, при использовании протокола WebSocket). Полученные данные для каждого из построенных приложений приведены в таблицах 3, 4 и 5.
Таблица 3.
Показатели RTT для алгоритма «long-polling»
Количество клиентов |
Локация сервера |
Средний RTT, мс |
1 |
локальный |
1.03 |
10 |
локальный |
3.28 |
100 |
локальный |
9.87 |
1 |
удаленный |
42.23 |
10 |
удаленный |
55.54 |
100 |
удаленный |
111.97 |
Таблица 4.
Показатели RTT для технологии Server-Sent Events
Количество клиентов |
Локация сервера |
Средний RTT, мс |
1 |
локальный |
0.88 |
10 |
локальный |
1.28 |
100 |
локальный |
2.62 |
1 |
удаленный |
56.15 |
10 |
удаленный |
73.84 |
100 |
удаленный |
98.50 |
Таблица 5.
Показатели RTT для протокола WebSocket
Количество клиентов |
Локация сервера |
Средний RTT, мс |
1 |
локальный |
0.82 |
10 |
локальный |
1.20 |
100 |
локальный |
2.06 |
1 |
удаленный |
50.22 |
10 |
удаленный |
66.78 |
100 |
удаленный |
92.80 |
По полученным результатам можно судить, что алгоритм «long-polling» показывает худшие результаты в сравнении с Server-Sent Events и WebSocket. Наилучшие результаты показывает протокол WebSocket. При этом стоит отметить, что WebSocket, в отличии от Server-Sent Events, не имеет совместимости с HTTP, что накладывает на него ряд ограничений. На Server-Sent Events осуществляется более простая миграция существующий веб-приложений, т.к. его возможности нативно поддерживаются современными веб-браузерами. В случаях, когда приложению реального времени не требуется двусторонняя передача данных, Server-Sent Events являются более лучшим вариантом.
Согласно проведенному исследованию, можно сделать следующие выводы по полученным результатам:
- Представление протокола HTTP/2 в значительной степени зависит от его реализации используемым браузером.
- В приложениях реального времени наилучшее применение находят технологии Server-Sent Events и протокол WebSocket.
- В рамках проведенного исследования, WebSocket демонстрирует наилучшие показатели круговых задержек.
В таблице 6 приведена сравнительная характеристика используемых технологий в современных веб-приложениях.
Таблица 6.
Сравнительные характеристики технолгий
Характеристика |
AJAX |
Long-polling |
SSE |
WebSocket |
Одно соединение |
– |
– |
– |
+ |
Использование в реальном времени |
– |
+ |
+ |
+ |
Двунаправленный обмен данными |
– |
– |
+ |
+ |
Согласно полученным данным при тестировании веб-сайтов, составим таблицу соотношения условий с технологиями сетевого взаимодействия.
Таблица 7.
Соотношение условий с технологиями сетевого взаимодействия
Частота обмена, задержка |
Низкая, высокая |
Высокая, высокая |
Высокая, низкая |
Постоянная, низкая |
Технология |
AJAX |
long-polling |
long-polling, SSE, WebSocket |
WebSocket |
HTTP используется в большинстве современных веб-приложений. Однако в приложениях, обладающих высокой чувствительностью к задержкам, предпочтительнее использование протокола WebSocket. Полученные результаты позволяют классифицировать веб-приложения по типу использования технологий обмена данными в клиент-серверной архитектуре в зависимости от типа веб-приложения и предъявляемых к нему требований.
Список литературы:
- Fielding R. Hyper Text Transfer Protocol – HTTP/1.1. IETF, 1999. Available at: https://www.ietf.org/rfc/rfc2616.txt (accessed 03, may, 2018).
- Grigorik I. Making the web faster with HTTP 2.0. ACM, 2013. No. 56 (12). Р. 42-49.
- Kim H., Lee J., Park I. The upcoming new standard HTTP/2 and its impact on multi-domain websites. APNOMS, 2015. Nо. 17 Р. 530-533.
Оставить комментарий