Заголовки: Sec-WebSocket-Accept
Заголовок Sec-WebSocket-Accept
Baseline Широко доступно
Эта возможность хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна в браузерах с июля 2015 года.
HTTP Sec-WebSocket-Accept — это заголовок ответа, который используется при рукопожатии для установления соединения WebSocket и указывает, что сервер согласен переключиться на соединение WebSocket.
Этот заголовок должен встречаться в ответе не более одного раза. Его значение директивы вычисляется на основе заголовка запроса Sec-WebSocket-Key, отправленного в соответствующем запросе.
| Тип заголовка | Заголовок ответа |
|---|
Синтаксис
Sec-WebSocket-Accept: <hashed key>
Директивы
<hashed key>-
Если был указан заголовок
Sec-WebSocket-Key, значение этого заголовка вычисляется следующим образом: значение ключа объединяется со строкой258EAFA5-E914-47DA-95CA-C5AB0DC85B11, после чего для полученной строки вычисляется хеш SHA-1 — в результате получается значение длиной 20 байт. Затем это значение кодируется в Base64, чтобы получить значение этого свойства.
Примеры
>Начальное рукопожатие WebSocket
Клиент инициирует рукопожатие WebSocket запросом следующего вида. Обратите внимание, что сначала это HTTP-запрос GET (HTTP/1.1 или более поздней версии), содержащий заголовок Upgrade, указывающий на намерение переключиться на соединение WebSocket. В запросе также содержится Sec-WebSocket-Key, который используется при вычислении Sec-WebSocket-Accept для подтверждения намерения переключить соединение на WebSocket.
GET /chat HTTP/1.1 Host: example.com:8000 Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Sec-WebSocket-Version: 13
Ответ сервера должен содержать заголовок Sec-WebSocket-Accept со значением, вычисленным на основе заголовка Sec-WebSocket-Key из запроса, и подтверждать намерение переключить соединение на WebSocket:
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Спецификации
| Спецификация |
|---|
| Протокол WebSocket> # section-11.3.3> |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
Sec-WebSocket-Accept |
16 | 12 | 11 | 15 | 6 | 18 | 14 | 14 | 6 | 1.0 | 4.4 | 6 |
См. также
Sec-WebSocket-KeySec-WebSocket-VersionSec-WebSocket-ProtocolSec-WebSocket-Extensions- Рукопожатие WebSocket в статье Создание серверов WebSocket
- Механизм обновления протокола HTTP
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Sec-WebSocket-Accept