Ответ
HTTP/3 — это третья и самая последняя версия протокола HTTP. Его главное архитектурное отличие заключается в том, что он работает поверх протокола QUIC (Quick UDP Internet Connections), который, в свою очередь, использует UDP вместо TCP.
Ключевые преимущества и отличия от HTTP/2:
Решение проблемы "Head-of-Line Blocking" на уровне транспорта.
- В HTTP/2, хотя мультиплексирование позволяло передавать несколько потоков данных одновременно, потеря одного TCP-пакета блокировала все потоки, так как TCP требует строгой последовательности.
- В HTTP/3, поскольку QUIC работает поверх UDP, потоки данных являются независимыми. Потеря пакета в одном потоке не влияет на другие, что значительно повышает производительность в сетях с потерями.
Более быстрое установление соединения.
- QUIC объединяет в себе функциональность TCP и TLS. Рукопожатие (handshake) происходит быстрее, чем последовательные рукопожатия TCP и TLS, что сокращает задержку при установке нового соединения (часто с 2-3 RTT до 1 RTT или даже 0-RTT для повторных соединений).
Встроенное шифрование.
- В отличие от TCP, протокол QUIC требует шифрования по умолчанию (используя TLS 1.3). Это делает соединения более безопасными и защищает метаданные от прослушивания.
Плавная смена сети (Connection Migration).
- Соединение в QUIC идентифицируется по уникальному ID, а не по паре IP-адрес/порт. Это позволяет клиенту (например, мобильному телефону) переключаться между сетями (Wi-Fi, 4G) без разрыва соединения.
Поддержка в Go:
Поддержка HTTP/3 в Go активно развивается. Для работы с ним можно использовать библиотеку quic-go
и стандартный пакет net/http3
(который является экспериментальным).
В целом, HTTP/3 спроектирован для более быстрой, надежной и безопасной работы веба, особенно в условиях мобильных и нестабильных сетей.