Sobes.tech
Middle

Qu'est-ce que WebSocket ? Comment se établit une connexion WebSocket ? Pourquoi le navigateur envoie-t-il une requête HTTP lors de l'établissement de la connexion et que signifie le statut 101 ?

sobes.tech IA

Réponse de l'IA

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, и после этого начинается двунаправленный обмен данными по новому протоколу.