Sobes.tech
Middle
15

Что такое WebSocket? Как происходит установка WebSocket-соединения? Зачем браузер отправляет HTTP-запрос при установке соединения и что означает статус 101?

Компании, где спрашивали
AstonAston

Ответ от нейросети

sobes.tech AI

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

Установка WebSocket-соединения:

  1. Клиент отправляет HTTP-запрос с заголовком Upgrade: websocket и другими специальными заголовками для инициации перехода протокола.
  2. Сервер, если поддерживает WebSocket, отвечает с кодом статуса 101 Switching Protocols, что означает согласие переключиться с HTTP на WebSocket.
  3. После этого соединение переходит в режим WebSocket, и данные могут передаваться в обе стороны без повторных HTTP-запросов.

Почему браузер отправляет HTTP-запрос? WebSocket начинается как обычный HTTP-запрос, чтобы использовать существующую инфраструктуру HTTP (прокси, балансировщики, firewall) и пройти через них. Заголовок Upgrade сообщает серверу, что клиент хочет переключиться на другой протокол.

Статус 101 — это специальный код ответа HTTP, означающий, что сервер согласен переключить протокол с HTTP на WebSocket, и после этого начинается двунаправленный обмен данными по новому протоколу.