Sobes.tech
Назад к вопросам
Intern
11

Расскажи про HTTP: какие версии бывают и чем отличаются? Что такое Head-of-Line blocking?

Компании, где спрашивали
Adapty

Ответ от нейросети

sobes.tech AI

HTTP (HyperText Transfer Protocol) — протокол передачи данных в интернете, который эволюционировал через несколько версий:

  • HTTP/1.0 — первая широко используемая версия, поддерживает одно соединение на запрос, без постоянных соединений.
  • HTTP/1.1 — добавлена поддержка постоянных соединений (keep-alive), чанковая передача, улучшена работа с кэшированием и заголовками.
  • HTTP/2 — значительно улучшена производительность за счёт мультиплексирования запросов по одному TCP-соединению, сжатия заголовков (HPACK), приоритизации потоков.
  • HTTP/3 — использует протокол QUIC поверх UDP, что снижает задержки при установлении соединения и улучшает устойчивость к потере пакетов.

Head-of-Line blocking (HOL blocking) — это ситуация, когда первый запрос или пакет в очереди блокирует обработку последующих, даже если они готовы к обработке. В HTTP/1.1 при использовании одного TCP-соединения запросы обрабатываются последовательно, и если первый запрос задерживается, все последующие ждут. HTTP/2 решает эту проблему мультиплексированием, но HOL blocking может возникать на уровне TCP, а HTTP/3 с QUIC устраняет её, так как QUIC работает поверх UDP и позволяет независимую доставку потоков.