Spec-Zone.ru › HTTP

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

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

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

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

  • Подробнее
  • Посмотреть полную таблицу совместимости
>

Заголовок HTTP Sec-WebSocket-Extensions — это запросный и ответный заголовок, используемый при WebSocket-рукопожатии для согласования расширения протокола, используемого клиентом и сервером.

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

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

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

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

Синтаксис

Sec-WebSocket-Extensions: <extensions>

Директивы

<extensions>

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

Примеры

>

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

В приведённом ниже HTTP-запросе показано начальное рукопожатие, при котором клиент поддерживает расширение permessage-deflate (с параметром client_max_window_bits) и расширение bbf-usp-protocol.

GET /chat HTTP/1.1
Host: example.com:8000
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits, bbf-usp-protocol

Запрос ниже с отдельными заголовками для каждого расширения эквивалентен:

GET /chat HTTP/1.1
Host: example.com:8000
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Extensions: bbf-usp-protocol

Сервер может отправить ответ ниже, чтобы указать, что он будет поддерживать расширение permessage-deflate:

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Extensions: permessage-deflate

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

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

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

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
Sec-WebSocket-Extensions 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-Protocol
  • Рукопожатие 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-Extensions

Spec-Zone.ru

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