Выбор ответа Middle WebSocket и SSE спрашивают часто обновлено

Как начинается WebSocket

Вопрос

Как устанавливается WebSocket-соединение?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: GET с Upgrade: websocket, ответ 101 Switching Protocols, дальше фреймы по тому же TCP. Handshake это обычный HTTP/1.1 GET с заголовками Upgrade, Connection: Upgrade, Sec-WebSocket-Key; сервер подтверждает 101 и Sec-WebSocket-Accept.

Варианты ответа

  1. Браузер открывает UDP-сокет на порт 81 и сразу шлёт по нему бинарные фреймы WebSocket
  2. Клиент шлёт POST с телом websocket, сервер отвечает 200, и тело ответа становится каналом
  3. Сразу по TLS без HTTP: браузер определяет протокол по схеме wss:// и шлёт фреймы
  4. GET с Upgrade: websocket, ответ 101 Switching Protocols, дальше фреймы по тому же TCPправильный ответ

Разбор

Handshake это обычный HTTP/1.1 GET с заголовками Upgrade, Connection: Upgrade, Sec-WebSocket-Key; сервер подтверждает 101 и Sec-WebSocket-Accept. Потом соединение переходит на протокол фреймов. WebSocket работает поверх TCP, а не UDP, и использует обычные порты 80 и 443. POST и 200 не подходят. wss:// означает тот же handshake, только внутри TLS.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.