Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Node.js: HTTP/2, multiplexing, stream, performance, concurrency

Что такое multiplexing в HTTP/2?

Вопрос проверяет понимание механизма multiplexing в HTTP/2, который позволяет одновременно передавать несколько запросов и ответов по одному соединению, что критично для производительности веб-приложений.

Короткий ответ

Multiplexing в HTTP/2 — это возможность отправлять несколько запросов и получать несколько ответов одновременно по одному TCP-соединению. В отличие от HTTP/1.1, где запросы обрабатываются последовательно или требуют нескольких соединений, HTTP/2 разбивает данные на небольшие фреймы и мультиплексирует их в потоки. Это устраняет проблему блокировки очереди (head-of-line blocking) и значительно ускоряет загрузку страниц.

Длинный ответ

Что такое multiplexing в HTTP/2?

Multiplexing (мультиплексирование) в HTTP/2 — это ключевая функция, позволяющая одновременно передавать множество запросов и ответов по одному TCP-соединению. В HTTP/1.1 каждый запрос требовал отдельного соединения или использовался механизм pipelining, который часто приводил к блокировке очереди (head-of-line blocking), когда один медленный запрос задерживал все последующие. HTTP/2 решает эту проблему, разбивая данные на бинарные фреймы и назначая их разным потокам (streams).

Как это работает?

В HTTP/2 все сообщения (запросы и ответы) делятся на небольшие фреймы, которые могут быть перемешаны и отправлены по одному соединению. Каждый фрейм принадлежит определенному потоку, идентифицируемому уникальным номером. Клиент и сервер могут отправлять фреймы из разных потоков одновременно, не дожидаясь завершения предыдущих. Это позволяет эффективно использовать пропускную способность сети и уменьшить задержки.

Пример кода (на Node.js с использованием http2)

const http2 = require('http2');
const fs = require('fs');

const server = http2.createSecureServer({
  key: fs.readFileSync('server.key'),
  cert: fs.readFileSync('server.cert')
});

server.on('stream', (stream, headers) => {
  // Обработка запроса
  stream.respond({
    'content-type': 'text/html',
    ':status': 200
  });
  stream.end('<h1>Hello World</h1>');
});

server.listen(3000);

В этом примере сервер создает защищенное HTTP/2 соединение. Каждый входящий запрос представлен как поток (stream), который может быть обработан независимо. Благодаря мультиплексированию, несколько таких потоков могут передаваться одновременно.

Преимущества и применение

  • Устранение head-of-line blocking на уровне приложения.
  • Снижение количества TCP-соединений, что уменьшает нагрузку на сервер и сеть.
  • Более быстрая загрузка веб-страниц, особенно с множеством ресурсов (CSS, JS, изображения).

Multiplexing особенно полезен для современных веб-приложений, где требуется загружать много мелких файлов. Он является основой для улучшения производительности по сравнению с HTTP/1.1.

Вывод

Multiplexing в HTTP/2 — это мощный инструмент для оптимизации сетевого взаимодействия, который следует применять в любых проектах, где важна скорость загрузки и эффективное использование ресурсов сервера. Он особенно актуален для высоконагруженных сайтов и приложений с большим количеством параллельных запросов.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • Node.js

    Node.js

  • Networks

Ключевые слова

#HTTP/2

#multiplexing

#stream

#performance

#concurrency

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию