Чем отличаются HTTP/1.1, HTTP/2 и HTTP/3?

Сравниваем передачу сообщений, мультиплексирование и транспорт HTTP: TCP, потоки HTTP/2 и QUIC в HTTP/3 без обещания безусловного ускорения.

Короткий ответ

Что ответить на собеседовании

HTTP/1.1 обычно использует TCP и текстовое представление сообщений. HTTP/2 передает бинарные кадры и мультиплексирует потоки в одном TCP-соединении, но потеря TCP-данных может задержать все потоки. HTTP/3 использует QUIC поверх UDP с надежной доставкой и независимыми потоками. Методы, статусы и основная семантика HTTP сохраняются; скорость зависит от условий.

Подробный разбор

Ответ с пояснениями

Версии HTTP меняют прежде всего способ передачи сообщений и управление соединением. Семантика методов, кодов статуса и ресурсов не заменяется полностью при переходе на новую версию.

HTTP/1.1 поддерживает постоянные соединения; заголовки и стартовая строка имеют текстовую форму. Тело при этом может быть бинарным. Пайплайнинг возможен, но ответы в нем идут в порядке запросов, поэтому медленный ответ задерживает последующие. Браузеры также используют несколько соединений.

HTTP/2 вводит бинарные кадры и несколько логических потоков внутри одного TCP-соединения. Сообщения разных потоков могут передаваться вперемешку; применяется сжатие заголовков HPACK. Но TCP остается упорядоченным байтовым потоком: потеря сегмента может задержать передачу приложению данных всех HTTP/2-потоков в соединении. См. RFC 9113.

HTTP/3 переносит HTTP на QUIC, который работает поверх UDP и обеспечивает надежную доставку потоков и криптографическую защиту. Потеря данных одного потока не требует задерживать доставку уже полученных данных другого так, как при общем TCP-потоке. Для заголовков применяется QPACK. Это не означает, что HTTP/3 «отказывается от надежности ради скорости»: надежность реализует QUIC. См. RFC 9114.

Мультиплексирование не отменяет ограничения сервера, управление перегрузкой и общую пропускную способность сети. Новая версия не гарантирует меньшую задержку в каждом сценарии. Выбор зависит от поддержки клиента, сервера, прокси и сети. HTTPS также не является названием отдельной версии HTTP: это указание на защищенное взаимодействие, а не синоним HTTP/2 или HTTP/3.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку