В HTTP 1.0 для каждого запроса и ответа между клиентом и сервером создаётся новое TCP-соединение. Это значит, что обмен данными замедляется, так как перед каждым запросом завершается взаимодействие TCP и TLS.
HTTP 1.1 позволял клиенту обрабатывать только один запрос в конкретный момент времени. Поэтому для параллельной работы браузеры использовали множество TCP-соединений одновременно.
HTTP/2 решает старую проблему — неэффективное использование TCP-соединения. Эта версия протокола поддерживает выполнение множества запросов через одно соединение одновременно.
В HTTP/3 вместо TCP новая версия HTTP использует QUIC. Это экспериментальный транспортный протокол,
разработанный Google. В QUIC потоки реализованы как объекты первого класса.
Потоки в QUIC используют общие соединения. Поэтому здесь нет проблемы «медленного старта». При этом потоки остаются независимыми, поэтому потеря части пакета не приводит к задержке передачи данных. Это возможно благодаря реализации пакетов QUIC поверх протокола UDP.