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-заголовка, а соответствующее значение - строка.
По умолчанию пустое.