Какой протокол используется для синхронной передачи данных в веб-приложениях?

«Какой протокол используется для синхронной передачи данных в веб-приложениях?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для синхронной передачи данных в веб-приложениях чаще всего используется WebSocket (протокол ws:// или wss://).

Почему WebSocket, а не HTTP?

  • HTTP — изначально запрос-ответ, полудуплексный. Для эмуляции синхронности требуются поллиннг или long-polling, что неэффективно.
  • WebSocket — устанавливает постоянное полнодуплексное соединение, позволяя серверу отправлять данные клиенту в реальном времени без запроса.

Пример установки соединения и получения данных:

// Клиентская часть (браузер)
const socket = new WebSocket('wss://example.com/ws');

socket.onopen = () => {
    console.log('Соединение установлено');
};

socket.onmessage = (event) => {
    // Данные приходят синхронно, как только сервер их отправит
    console.log('Получены данные:', event.data);
};

Ключевые особенности:

  • Низкая задержка (latency).
  • Эффективная двусторонняя связь.
  • Используется для чатов, биржевых тикеров, онлайн-игр.