TGViewer
The ExtremeCode Times The ExtremeCode Times @extremecode · 35.6K subscribers
Post #339 12.2K
🤡 Тут анонимные источники подкинули закономерную претензию к моему посту про Benchmark сервера на Rust, ну типа вот - есть же HTTP/2 и вот может же сервер реализующий этот протокол отправлять файлы клиентской стороне до того момента, как браузер их запросит.

Приведу последовательность, для примерного понимания происходящих процессов. Обычная, "сильно-упрощенная" схема в классическом Http "из 90-ых", которая работает следующим образом:

Браузер запрашивает index.html ->
Сервер отправляет index.html ->
Браузер парсит разметку, строит DOM и определяет какие файлы нужно дополнительно догрузить ->
Браузер производит запрос на сервер по каждому файлу (или параллельно или последовательно) ->
Сервер последовательно или параллельно отправляет все запрошенные файлы ->
Браузер отображает страницу с учетом всех ресурсов.

Разница HTTP/2 в том, что серверная сторона может заранее определить, распарсив исходный HTML (или захардкодив их в конфиге) — какие файлы могут понадобиться клиенту и сразу же начать их отправку без дополнительных запросов с клиентской стороны.

Под файлами, там понятно — что угодно может быть, и JS и CSS и JPEG'и, вообще не суть.

Только вот проблема в том, что все эти процессы никакого отношения к бенчмарку не имеют - там, как правило, используется статичный Hello World на HTML размером в ~110 байт и без дополнительного контента в виде вышеупомянутых JPEG'ов.

Весь процесс клиент/серверного взаимодействия упрощается до примерно следующего вида:
Клиент запрашивает index.html ->
Сервер отправляет index.html ->

Более того, исходник faf открыт, это не rocket science, а элементарнейший веб сервер. Изучив код в течении 30-и секунд, сразу становится понятно, что там реализован стандартный HTTP/1.1 без выпендрежей.

И даже какой-нибудь хитровыебаный Pipelining конкретно в этом случае физику не обманет — запрос от клиента в любом случае должен произойти. Сервер не может слать ответ на опережение, ОСОБЕННО в случае использования мультиплексирования, как бы ты все клиентские сессии в единый поток не совал, это не так работает.

КАКИМ ОБРАЗОМ это вообще можно представить?

Типа, я как клиент, ОДИН РАЗ запросил страницу, а сервер по приколу решил мне заслать 10/100/1000 абсолютно одинаковых экземпляров страницы, предварительно запихнув их в один Stream? Вообще беды с башкой? 🤡
  • 🤡 119
  • 👍 41
  • 😁 2
  • 🤔 1
  • 🫡 1
More from @extremecode
  1. Sep 21, 2026Вспоминаю как я батрачил в месте где компиляцию легаси на плюсах ставили на ночь.
  2. Sep 18, 2026ИИ-платформа Рег.облака: один API вместо десяти провайдеров Проверить, какая LLM работает…
  3. Sep 18, 2026А за кого бы проголосовала муха-дрозофила? 🤨
  4. Sep 18, 2026Че как на счет контента про устройство работы мухи? Разобрать по бырому как она там функци…
  5. Sep 17, 2026Хакатон на космических данных. Санкт-Петербург, Красноярск или онлайн из любой точки стран…
  6. Sep 16, 2026Главный нейропогонщик из нашего чата научил муху играть в подкидного дурака 😄 Она сыграла…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →