Выбор ответа 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.
Варианты ответа
- Браузер открывает UDP-сокет на порт 81 и сразу шлёт по нему бинарные фреймы WebSocket
- Клиент шлёт POST с телом
websocket, сервер отвечает 200, и тело ответа становится каналом - Сразу по TLS без HTTP: браузер определяет протокол по схеме
wss://и шлёт фреймы - 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 ошибок.