HTTPUpgrade

Это протокол, реализующий запросы и ответы на обновление HTTP 1.1, подобно WebSocket. Это позволяет ему, как и WebSocket, быть проксируемым CDN или Nginx, но без необходимости реализации других частей протокола WebSocket, что делает его более эффективным.

Его дизайн не рекомендуется для самостоятельного использования, а лучше всего работает в сочетании с TLS.

Предупреждение

Рекомендуется переключиться на XHTTPОткрыть в новой вкладке, чтобы избежать значительных характеристик трафика, таких как HTTPUpgrade «ALPN is http/1.1».

HttpUpgradeObject

HttpUpgradeObject соответствует пункту httpupgradeSettings в настройках передачи.

{
  "acceptProxyProtocol": false,
  "path": "/",
  "host": "xray.com",
  "headers": {
    "key": "value"
  }
}

acceptProxyProtocol: true | false

Используется только для входящих соединений и указывает, принимать ли протокол PROXY.

PROXY protocolОткрыть в новой вкладке предназначен для передачи реального IP-адреса и порта запроса. Если вы не знакомы с ним, проигнорируйте этот пункт.

Распространенные программы для reverse прокси (например, HAProxy, Nginx) и VLESS fallbacks xver могут быть настроены для его включения.

При установке значения true, после установления TCP-соединения на самом нижнем уровне, запрашивающая сторона должна сначала отправить PROXY protocol v1 или v2, в противном случае соединение будет закрыто.

path: string

HTTP-путь, используемый HTTPUpgrade, по умолчанию "/".

Если в пути клиента содержится параметр ed (например, /mypath?ed=2560), будет активирована функция Early Data для уменьшения задержки, ее значение - порог длины первого пакета. Если длина первого пакета превышает это значение, Early Data не будет активирована. Рекомендуемое значение - 2560.

host: string

Хост, отправляемый в HTTP-запросе HTTPUpgrade, по умолчанию пустой. Если значение на стороне сервера пустое, значение хоста, отправляемое клиентом, не проверяется.

Когда на стороне сервера указано это значение или в headers указан хост, будет проверено соответствие хоста запроса клиента.

Приоритет выбора хоста, отправляемого клиентом: host > headers > address

headers: map {string: string}

Пользовательские HTTP-заголовки, пара ключ-значение, где каждый ключ представляет имя HTTP-заголовка, а соответствующее значение - строка.

По умолчанию пустое.