Выбор ответа Middle HTTP/2 и HTTP/3 обновлено
Head-of-line blocking в HTTP/2
Вопрос
На сети с потерями пакетов страница по HTTP/2 грузится медленнее, чем ожидалось. В чём причина?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Потеря одного TCP-пакета заставляет все потоки соединения ждать его повтора. TCP отдаёт данные строго по порядку, поэтому потеря одного пакета задерживает все мультиплексированные потоки: head-of-line blocking на транспортном уровне.
Варианты ответа
- HTTP/2 не поддерживает параллельные запросы и шлёт их строго по очереди
- Потеря одного TCP-пакета заставляет все потоки соединения ждать его повтораправильный ответ
- При потерях ломается таблица HPACK, и заголовки приходится пересылать целиком
- При потерях браузер откатывается на HTTP/1.0 и открывает новое соединение
Разбор
TCP отдаёт данные строго по порядку, поэтому потеря одного пакета задерживает все мультиплексированные потоки: head-of-line blocking на транспортном уровне. HTTP/2 параллелит запросы, проблема ниже. HPACK тут ни при чём. Отката на HTTP/1.0 нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Чем отличаются HTTP/1.1, HTTP/2 и HTTP/3
Следующий вопрос
Как браузер узнаёт про HTTP/3