Введение в протокол HTTP/2¶
Протокол HTTP появился в 1990-х годах и с тех пор развивался скорее эволюционно. Последняя версия - HTTP/1.1 появилась примерно 15 лет назад. Целью HTTP/2 является увеличение производительности HTTP сети при помощи уменьшения процессинговых задержек HTTP запросов и новых стратегий обмена данными между клиентом и сервером, таких как
- мультиплексирование
- сжатие и бинарная передача
- контроль потока
- серверные пуши
Мультиплексирование¶
Мультиплексирование - это новая стратегия диалога между клиентом и сервером. Используя одно и то же соединение, клиент может отправлять несколько запросов на сервер. На этом основаны потоковые запросы gRPC.
Сжатие и бинарная передача данных¶
HTTP/2 передаёт данные в бинарном виде (в отличие от HTTP/1), а также позволяет сжимать передающиеся данные. Это даёт такие преимущества:
- Уменьшаются сетевые задержки засчёт уменьшения объёма передаваемых данных;
- Уменьшается потребление трафика.
HTTP/2 позволяет также сжимать заголовки согласно спецификации HPACK
Контроль потока¶
HTTP/2 позволяет управлять приоритетом потоков данных между клиентом и сервером. Решение о приоритете принимается клиентом. Это позволяет серверу оптимизировать потребление сетевых ресурсов. Документация gRPC не упоминает о том, используется ли эта стратегия.
Серверные пуши¶
HTTP/2 поддерживает пуши с сервера, но не так, как в SignalR (который использует, чаще всего, WebSockets), так как сервер HTTP/2 основан на HTTP. Эта стратегия не поддерживается gRPC.
Дата создания : 6 апреля 2023 г.