Есть ли причина, по которой требуется HTTP2, когда websocket уже доступен? - PullRequest
1 голос
/ 09 марта 2020

Есть ли причина, по которой требуется HTTP2, когда веб-сокет уже доступен?

Натан Ав (Сингапур)

1 Ответ

1 голос
/ 14 марта 2020

Зачем нам HTTP / 2, когда у нас есть WebSockets? Ну и зачем нам WebSockets, когда у нас есть TCP? Или даже IP? Протоколы - это, в основном, согласованные стандарты, которые могут быть реализованы независимыми сторонами.

WebSockets хороши для двусторонней связи, но в большинстве случаев они неструктурированы и специфики приложения c. HTTP (в основном) представляет собой серию односторонних запросов к серверу (запросить ресурс, получить ответ) - хотя HTTP / 2 немного улучшает это с HTTP / 2 pu sh, и теоретически уровень двоичного кадрирования может быть использовал больше для правильного двухстороннего пу sh. Таким образом, полная двусторонняя природа WebSockets - то, в чем они хороши, - на самом деле не нужна для большинства случаев использования HTTP.

Глядя на HTTP, он имеет различные дополнительные функции, которых нет в WebSockets. Включая определенные методы, заголовки и сжатие. Это позволяет получить четкое понимание между различными реализациями HTTP, чтобы упростить обмен данными для его варианта использования, включая такие функции, как мультиплексирование , кэширование, сжатие, перенаправления, обработка ошибок ... et c. Если бы вам пришлось заново изобрести все это поверх WebSockets (это очень сырой протокол), вы бы получили протокол, подобный HTTP / 2.

Может ли HTTP / 2 использовать WebSockets, чтобы действовать как это базовый транспортный уровень? Возможно, но это ненужный дополнительный уровень абстракции (IP-> TCP-> WS-> HTTP2-> HTTP), не говоря уже о том, что веб-сокеты часто изначально устанавливаются через HTTP. HTTP достаточно велик, чтобы иметь собственный транспортный протокол, поэтому фактически они пошли другим путем и указали WebSockets по HTTP / 2 .

Наконец, следует также отметить, что HTTP / 2 также не делает Web-сокеты устаревшими . Они разные и имеют разные преимущества и недостатки.

...