Выбор ответа Middle HTTP/2 и HTTP/3 обновлено

Head-of-line blocking в HTTP/2

Вопрос

На сети с потерями пакетов страница по HTTP/2 грузится медленнее, чем ожидалось. В чём причина?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Потеря одного TCP-пакета заставляет все потоки соединения ждать его повтора. TCP отдаёт данные строго по порядку, поэтому потеря одного пакета задерживает все мультиплексированные потоки: head-of-line blocking на транспортном уровне.

Варианты ответа

  1. HTTP/2 не поддерживает параллельные запросы и шлёт их строго по очереди
  2. Потеря одного TCP-пакета заставляет все потоки соединения ждать его повтораправильный ответ
  3. При потерях ломается таблица HPACK, и заголовки приходится пересылать целиком
  4. При потерях браузер откатывается на HTTP/1.0 и открывает новое соединение

Разбор

TCP отдаёт данные строго по порядку, поэтому потеря одного пакета задерживает все мультиплексированные потоки: head-of-line blocking на транспортном уровне. HTTP/2 параллелит запросы, проблема ниже. HPACK тут ни при чём. Отката на HTTP/1.0 нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.