Сети и протоколы
Версии HTTP: измерь HOL blocking и выкати HTTP/3-edge
Читать про head-of-line blocking — не то же, что видеть, как один потерянный пакет стопорит пятьдесят потоков на твоём собственном проводе. Подними один origin на всех трёх версиях HTTP, инжектируй потери, измерь разницу и подключи наблюдаемость, нужную реальному HTTP/3-edge, чтобы поймать инцидент блокировки UDP раньше пользователей.
Преврати ментальную модель юнита в воспроизводимый эксперимент и production-образный edge: отдавай /1.1, /2 и /3 с одного origin, измерь слоистый HOL blocking под контролируемыми потерями, докажи изоляцию потоков HTTP/3 и заинструментируй распределение ALPN и h3-fallback, чтобы диагностировать тихую блокировку UDP.
Отдавай один origin со статикой и API одновременно по HTTP/1.1, HTTP/2 и HTTP/3, затем измерь, как head-of-line blocking различается между версиями под потерями пакетов — доказывая каждое утверждение числами, а не оценками — и выкати наблюдаемость, нужную HTTP/3-edge.
- Таблица до/после: время загрузки страницы или завершения батча для /1.1, /2 и /3 на 0%, 1% и 2% потерь — измеренное под идентичной нагрузкой, показывающее, что HTTP/2 деградирует быстрее всех, а HTTP/3 держится ближе всех к своей базовой линии без потерь.
- Протокольное доказательство, что h3 реально согласован (curl/qlog), и захват или лог, демонстрирующий TCP-layer HOL blocking на /2 против per-stream восстановления потерь на /3.
- Живой дашборд с распределением ALPN и частотой h3-fallback по региону/ASN плюс рабочее правило алерта, продемонстрированное симуляцией блокировки UDP/443 (дроп UDP на эмуляторе) и наблюдением, как метрика фоллбэка и алерт срабатывают.
- Краткий разбор: какую версию ты отдавал бы каким клиентам и почему, как диагностировал бы реальный ночной обвал h3 и какие фиксы кэширования/семантики применил.
- Добавь подсказки приоритета RFC 9218 (Priority: u=… на запросах) и покажи, как render-blocking CSS приходит впереди больших изображений за счёт переупорядочивания доставки DATA-фреймов; измерь эффект на загрузку страницы.
- Замени любой HTTP/2 Server Push на 103 Early Hints плюс link rel=preload и сравни время загрузки на тёплом и холодном кэше, чтобы подтвердить, что современный путь выигрывает.
- Добавь real-time канал WebSocket или WebTransport: WebSocket поверх RFC 8441 на HTTP/2 против WebTransport на HTTP/3 и сравни поведение под потерями и при хэндовере Wi-Fi на сотовую (connection migration).
- Напиши одностраничный on-call runbook: triage всплеска h3-fallback по дашборду, локализация блокирующего hop через UDP-traceroute и решение, снижать ли Alt-Svc max-age, пока сетевая команда чинит путь.
Это цикл, который ты будешь запускать на любом реальном внедрении HTTP: отдавай все три версии и дай ALPN и Alt-Svc выбирать, измеряй слоистый HOL blocking под контролируемыми потерями вместо доверия теории, докажи per-stream изоляцию HTTP/3 на своём проводе и заинструментируй распределение ALPN плюс h3-fallback по ASN, чтобы тихая блокировка UDP ловилась за минуты. Выправи семантику кэширования и статус-кодов заодно — и у тебя edge, которому SRE реально доверяет.