Что такое WebSocket? Как происходит установка WebSocket-соединения? Зачем браузер отправляет HTTP-запрос при установке соединения и что означает статус 101?
Answer from AI
sobes.tech AI
WebSocket — это протокол, обеспечивающий двунаправленное постоянное соединение между клиентом (обычно браузером) и сервером. Он позволяет обмениваться данными в реальном времени без необходимости повторных HTTP-запросов.
Установка WebSocket-соединения:
- Клиент отправляет HTTP-запрос с заголовком
Upgrade: websocketи другими специальными заголовками для инициации перехода протокола. - Сервер, если поддерживает WebSocket, отвечает с кодом статуса
101 Switching Protocols, что означает согласие переключиться с HTTP на WebSocket. - После этого соединение переходит в режим WebSocket, и данные могут передаваться в обе стороны без повторных HTTP-запросов.
Почему браузер отправляет HTTP-запрос?
WebSocket начинается как обычный HTTP-запрос, чтобы использовать существующую инфраструктуру HTTP (прокси, балансировщики, firewall) и пройти через них. Заголовок Upgrade сообщает серверу, что клиент хочет переключиться на другой протокол.
Статус 101 — это специальный код ответа HTTP, означающий, что сервер согласен переключить протокол с HTTP на WebSocket, и после этого начинается двунаправленный обмен данными по новому протоколу.