HTTP/1.1 ≠ HTTP/2 ≠ HTTP/3
Все они передают веб-страницы…
Но каждое поколение решило главное узкое место производительности.
Самый простой способ их запомнить:
HTTP/1.1
→ Один запрос за раз на одно соединение. Просто, но медленнее для современных сайтов.
HTTP/2
→ Множество запросов могут использовать одно TCP-соединение благодаря мультиплексированию.
HTTP/3
→ Работает поверх QUIC (на базе UDP), снижая задержку и устраняя головную блокировку на транспортном уровне.
Быстрый приём для запоминания:
- HTTP/1.1 = Последовательно
- HTTP/2 = Мультиплексировано
- HTTP/3 = Мультиплексировано + Быстрое восстановление
Почему развивались версии?
🔹 HTTP/1.1
- Множество TCP-соединений для загрузки многих ресурсов
- Текстовый протокол
- Головная блокировка на прикладном уровне
🔹 HTTP/2
- Мультиплексирование по одному TCP-соединению
- Бинарный протокол
- Сжатие заголовков (HPACK)
- Меньше соединений, лучше производительность
🔹 HTTP/3
- Построен на QUIC вместо TCP
- Быстрое установление соединения
- Лучшая производительность на нестабильных и мобильных сетях
- Улучшенная устойчивость к потере пакетов
Частый вопрос на собеседованиях:
Если HTTP/2 уже поддерживает мультиплексирование, зачем понадобился HTTP/3?
Потому что HTTP/2 всё ещё работает поверх TCP. Если пакет потерян, TCP может задержать другие потоки на этом соединении. HTTP/3 использует QUIC поверх UDP, позволяя потокам восстанавливаться более независимо и снижая задержку на ненадёжных сетях.
Одна фраза навсегда:
HTTP/1.1 = Один за другим
HTTP/2 = Много сразу
HTTP/3 = Много сразу, даже на плохих сетях
Сохранил эту шпаргалку для всех, кто учит сети, бэкенд-разработку или готовится к собеседованиям по системному дизайну.
👉 @PythonPortal
Post #5924
5.34K

- 🔥 10
- ❤ 9