В чем разница между версиями HTTP

«В чем разница между версиями HTTP» — вопрос из категории Архитектура, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HTTP (HyperText Transfer Protocol) — протокол передачи данных. Основные версии:

  1. HTTP/1.1 (1997):

    • Поддерживает keep-alive соединения (повторное использование TCP-соединения).
    • Последовательная загрузка ресурсов (head-of-line blocking).
    • Нет встроенного шифрования (HTTPS требует TLS поверх HTTP).
  2. HTTP/2 (2015):

    • Мультиплексирование (параллельная загрузка через одно соединение).
    • Бинарный протокол (вместо текстового).
    • Server Push (отправка ресурсов до запроса клиента).
    • Обязателен HTTPS (шифрование).
  3. HTTP/3 (2022):

    • Работает поверх QUIC (UDP вместо TCP, меньше задержек).
    • Встроенное шифрование (TLS 1.3).
    • Улучшенное мультиплексирование (нет блокировки на уровне пакетов).

Пример заголовка HTTP/2:

:method: GET
:path: /index.html
:authority: example.com