Заголовки: Sec-WebSocket-Version
Заголовок Sec-WebSocket-Version
Baseline Широко доступно
Эта возможность хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она поддерживается браузерами с июля 2015 года.
HTTP-заголовок Sec-WebSocket-Version используется в запросе и заголовке ответа при начальном WebSocket-рукопожатии, чтобы указать протокол WebSocket, поддерживаемый клиентом, а также версии протокола, поддерживаемые сервером, если он не поддерживает версию, указанную в запросе.
В запросе этот заголовок может появляться только один раз и указывает версию WebSocket, используемую веб-приложением. На момент написания актуальная версия протокола — 13. Пользовательские агенты автоматически добавляют этот заголовок в запросы при установлении соединения WebSocket.
Сервер использует указанную версию, чтобы определить, может ли он работать с этим протоколом. Если сервер не поддерживает эту версию или не понимает какой-либо заголовок в рукопожатии либо его значение некорректно, серверу следует отправить ответ со статусом 400 Bad Request и немедленно закрыть сокет. В ответе 400 также следует включить Sec-WebSocket-Version со списком поддерживаемых версий. Версии можно указать в отдельных заголовках или перечислить через запятую в одном заголовке.
Если сервер поддерживает версию, указанную клиентом, заголовок не следует отправлять в ответе.
| Тип заголовка | Заголовок ответа |
|---|---|
| Запрещённый заголовок запроса | Да (префикс Sec-) |
Синтаксис
Запрос
Sec-WebSocket-Version: <version>
Ответ (только при ошибке):
Sec-WebSocket-Version: <server-supported-versions>
Директивы
<version>-
Версия протокола WebSocket, которую клиент хочет использовать для обмена данными с сервером. Следует указывать самую последнюю доступную версию из реестра номеров версий WebSocket IANA. Последняя окончательная версия протокола WebSocket — 13.
<server-supported-versions>-
При ошибке — список версий протокола WebSocket, поддерживаемых сервером, разделённых запятыми. Если поддерживается
<version>, заголовок не отправляется в ответах.
Примеры
>Начальное рукопожатие WebSocket
Версия, поддерживаемая клиентом, указывается в исходном WebSocket запросе рукопожатия. Для текущей версии протокола используется номер «13», как показано ниже.
GET /chat HTTP/1.1 Host: example.com:8000 Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Sec-WebSocket-Version: 13
Если сервер поддерживает версию 13 протокола, то Sec-WebSocket-Version не будет присутствовать в ответе.
Спецификации
| Спецификация |
|---|
| Протокол WebSocket> # section-11.3.5> |
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
Sec-WebSocket-Version |
16 | 12 | 11 | 15 | 6 | 18 | 14 | 14 | 6 | 1.0 | 4.4 | 6 |
См. также
Sec-WebSocket-AcceptSec-WebSocket-KeySec-WebSocket-ProtocolSec-WebSocket-Extensions- Рукопожатие WebSocket в статье Написание серверов WebSocket
© 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-Version