Протокол передачи гипертекста (HTTP) является основой обмена данными в веб. В то время как HTTP/2 в 2015 году принес значительный прирост производительности благодаря мультиплексированию, он страдал от фундаментального ограничения: блокировки начала очереди (Head-of-Line, HoL) на уровне TCP. HTTP/3 решает эту проблему, заменяя TCP новым транспортным протоколом QUIC (Quick UDP Internet Connections).
Что такое блокировка начала очереди в TCP?
В HTTP/2 несколько ресурсов отправляются одновременно по одному каналу TCP. Однако, поскольку TCP строго контролирует порядок пакетов, при потере хотя бы одного пакета вся передача данных приостанавливается до тех пор, пока потерянный пакет не будет передан повторно. Это сильно замедляет работу сайтов на нестабильном мобильном интернете.
Как HTTP/3 и QUIC решают эту проблему
HTTP/3 работает поверх UDP с использованием протокола QUIC. В QUIC каждый поток данных обрабатывается независимо. Если теряется пакет, относящийся, например, к одной картинке, задерживается только этот конкретный поток. Все ресурсы продолжают загружаться без задержек.
Соединения 0-RTT и мгновенный отклик
QUIC объединяет процесс установки транспортного соединения и шифрования TLS 1.3 в один шаг. Для повторных посещений QUIC поддерживает технологию 0-RTT (Zero Round-Trip Time), позволяя отправлять полезные данные уже в самом первом пакете, значительно снижая время отклика.