Spec-Zone.ru › HTTP

Заголовки: Sec-WebSocket-Protocol

Заголовок Sec-WebSocket-Protocol

Baseline Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная информация о совместимости
>

HTTP-заголовок Sec-WebSocket-Protocol запроса и ответа используется при начальном WebSocket-рукопожатии для согласования подпротокола, который будет использоваться для обмена данными. Это может быть хорошо известный протокол, например SOAP или WAMP, либо пользовательский протокол, понятный клиенту и серверу.

В запросе заголовок указывает один или несколько подпротоколов WebSocket, которые веб-приложение хотело бы использовать, в порядке предпочтения. Их можно указать как значения протокола в нескольких заголовках или как разделённые запятыми значения в одном заголовке.

В ответе указывается подпротокол, выбранный сервером. Это должен быть первый поддерживаемый сервером подпротокол из списка, указанного в заголовке запроса.

Заголовок запроса автоматически добавляется и заполняется браузером на основе значений, указанных приложением в аргументе protocols конструктора WebSocket(). Выбранный сервером подпротокол доступен веб-приложению в свойстве WebSocket.protocol.

Тип заголовка Заголовок запроса, заголовок ответа
Запрещённый заголовок запроса Да (префикс Sec-)

Синтаксис

Sec-WebSocket-Protocol: <sub-protocols>

Директивы

<sub-protocols>

Список имён подпротоколов, разделённых запятыми и расположенных в порядке предпочтения. Подпротоколы можно выбрать из реестра имён подпротоколов WebSocket IANA или использовать пользовательское имя, понятное и клиенту, и серверу.

В заголовке ответа указывается один подпротокол, выбранный сервером.

Примеры

>

Начальное рукопожатие WebSocket

Подпротокол указывается в исходном запросе рукопожатия WebSocket. В запросе ниже показано, что клиент предпочитает soap, но также поддерживает wamp.

GET /chat HTTP/1.1
Host: example.com:8000
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
Sec-WebSocket-Protocol: soap, wamp

Указание протоколов таким образом даёт тот же результат:

Sec-WebSocket-Protocol: soap
Sec-WebSocket-Protocol: wamp

Ответ сервера будет содержать заголовок Sec-WebSocket-Protocol с первым подпротоколом, который сервер поддерживает из списка предпочтений клиента. Ниже это показано как soap:

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Protocol: soap

Спецификации

Спецификация
Протокол WebSocket>
# section-11.3.4>

Совместимость с браузерами

Настольные Мобильные
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
Sec-WebSocket-Protocol 16 12 11 15 6 18 14 14 6 1.0 4.4 6

См. также

  • Sec-WebSocket-Accept
  • Sec-WebSocket-Key
  • Sec-WebSocket-Version
  • Sec-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-Protocol

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API