Термин · Глоссарий B2B-ПО

WebSocket (WebSocket)

WebSocket – протокол полнодуплексной связи по одному TCP-соединению, стандартизованный в RFC 6455 (2011). Обеспечивает постоянный канал между браузером и сервером для обмена данными в реальном времени без повторных HTTP-запросов.

Буква «W» В категориях: 4 Платформ: 6+

Введение

WebSocket – протокол связи по TCP, стандартизованный в RFC 6455 (2011 год). Обеспечивает полнодуплексный постоянный канал между клиентом (браузером) и сервером: обе стороны могут отправлять сообщения в любое время без инициирования нового соединения.

До WebSocket для real-time обновлений использовались неэффективные техники: long polling, Server-Sent Events, или постоянное переоткрытие HTTP-соединений. WebSocket решил эту проблему элегантно, оставаясь совместимым с существующей HTTP-инфраструктурой.

История и контекст

Протокол WebSocket разработан в рамках HTML5 инициативы. В 2009 году появились первые черновики, в 2011-м RFC 6455 стал стандартом IETF. Все современные браузеры поддерживают WebSocket начиная с 2012 года. В 2018-м RFC 8441 добавил поддержку WebSocket поверх HTTP/2.

Версия протокола – только 13 (с 2011 года, других актуальных версий нет). Порты по умолчанию: 80 для ws://, 443 для wss:// (зашифрованный через TLS).

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

Установка соединения (handshake): клиент отправляет обычный HTTP/1.1 GET-запрос с заголовками:

  • Upgrade: websocket – запрос смены протокола;
  • Connection: Upgrade – обязательный сопутствующий заголовок;
  • Sec-WebSocket-Key – случайный base64-ключ для верификации сервера;
  • Sec-WebSocket-Version: 13 – версия протокола.

Сервер отвечает статусом 101 Switching Protocols и заголовком Sec-WebSocket-Accept. После этого HTTP-соединение «переключается» в WebSocket-режим.

Передача данных: информация передаётся фреймами. Каждый фрейм содержит опкод (text, binary, ping, pong, close), длину и полезную нагрузку. Текстовые фреймы должны быть в кодировке UTF-8. Клиентские фреймы маскируются ключом для предотвращения атак на промежуточные узлы.

Где применяется

  • Чаты и мессенджеры – мгновенная доставка сообщений;
  • Финансовые терминалы – котировки акций и криптовалют в реальном времени;
  • Многопользовательские игры – синхронизация состояния игры;
  • Совместное редактирование документов (Google Docs-стиль);
  • Мониторинг и дашборды – live-метрики без перезагрузки страницы.

Преимущества и ограничения

Преимущества: значительно меньший overhead по сравнению с HTTP polling; полнодуплексность; низкая задержка; совместимость с HTTP-инфраструктурой (прокси, брандмауэры).

Ограничения: stateful-соединения сложнее масштабировать горизонтально (требуется sticky sessions или pub/sub брокер); не проходит через некоторые корпоративные прокси; нет встроенного механизма восстановления – требуется реализовывать reconnect с exponential backoff на клиенте.

Связь с другими понятиями

OpenAPI не поддерживает WebSocket – для описания event-driven протоколов используется AsyncAPI. Очередь сообщений (Kafka, RabbitMQ) решает схожую задачу асинхронного обмена, но на серверной стороне. Service Mesh (Istio) поддерживает балансировку WebSocket-трафика. WebSocket и gRPC – две современные альтернативы REST для real-time взаимодействия.

Понятия из глоссария Цифрового маркетплейса, которые часто встречаются вместе с термином «WebSocket».

Платформы класса «WebSocket»

Решения из каталога Цифрового маркетплейса, относящиеся к этому классу ПО. Карточки ведут на полные карточки платформ с тарифами, обзорами и кейсами внедрения.

Онколинк

Онколинк

Разработка ПО
Платформа для управления онкологическими пациентами и координации медицинского обслуживания. Входит в Единый р...
Цена по запросу
Подробнее →
MO

Moon

Разработка ПО
Moon - platforma avtomatizirovannogo testirovaniya veb-prilozheniy v nastol'nykh i mobil'nykh brauzerakh po pr...
Цена по запросу
★ 4.2
Подробнее →
Модуль обмена C3D Converter

Модуль обмена C3D Converter

Разработка ПО
Модуль обмена C3D Converter отвечает за чтение и запись 3D-моделей в файлах нейтральных форматов и в собственн...
Цена по запросу
Подробнее →
JaCarta АРМ УЦ

JaCarta АРМ УЦ

Разработка ПО
ПО JaCarta АРМ УЦ - приложение, позволяющее генерировать ключевые пары с использованием встроенных криптографи...
Цена по запросу
★ 4.7
Подробнее →
АВ

Автограмма

Разработка ПО
Автограмма — визуальная среда разработки встраиваемых систем управления (No-Code/IDE) для промышленной автомат...
Цена по запросу
Подробнее →

Категории каталога

Разделы каталога Цифрового маркетплейса, в которые входят решения, использующие «WebSocket».

Где применяется

Отрасли, в которых «WebSocket» используется на практике. Откройте отраслевой раздел Цифрового маркетплейса, чтобы увидеть подходящие решения, кейсы и новости.

Частые вопросы про WebSocket

Чем WebSocket отличается от HTTP?

HTTP – протокол запрос-ответ: клиент инициирует каждый обмен. WebSocket – постоянное двустороннее соединение: сервер может сам отправлять данные клиенту без запроса. Это критично для real-time приложений.

Что такое wss://?

WebSocket Secure – WebSocket поверх TLS (Transport Layer Security), аналог HTTPS для HTTP. Работает на порту 443. Обеспечивает шифрование канала. В production всегда следует использовать wss://.

Как WebSocket работает за прокси?

WebSocket использует тот же механизм Upgrade, что и CONNECT, и работает через большинство HTTP-прокси. Однако некоторые корпоративные прокси блокируют upgrade. wss:// (порт 443) обычно проходит без проблем.

Как масштабировать WebSocket-сервер?

Горизонтально через sticky sessions (клиент всегда попадает на тот же сервер) или через pub/sub брокер (Redis Pub/Sub, Kafka): сообщение от клиента публикуется в брокер, все экземпляры сервера его получают и рассылают своим клиентам.

Когда использовать WebSocket, а когда Server-Sent Events?

SSE подходит для однонаправленной передачи (сервер → клиент): лента событий, уведомления. WebSocket нужен при двустороннем обмене: чат, игры, совместное редактирование. SSE проще, нативно поддерживает HTTP/2 и автопереподключение.