You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
3.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# HTTPUpgrade
Это протокол, реализующий запросы и ответы на обновление HTTP 1.1, подобно WebSocket. Это позволяет ему, как и WebSocket, быть проксируемым CDN или Nginx, но без необходимости реализации других частей протокола WebSocket, что делает его более эффективным.
Его дизайн не рекомендуется для самостоятельного использования, а лучше всего работает в сочетании с TLS.
## HttpUpgradeObject
`HttpUpgradeObject` соответствует пункту `httpupgradeSettings` в настройках передачи.
```json
{
"acceptProxyProtocol": false,
"path": "/",
"host": "xray.com",
"headers": {
"key": "value"
}
}
```
> `acceptProxyProtocol`: true | false
Используется только для входящих соединений и указывает, принимать ли протокол PROXY.
[PROXY protocol](https://www.haproxy.org/download/2.2/doc/proxy-protocol.txt) предназначен для передачи реального 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-заголовка, а соответствующее значение - строка.
По умолчанию пустое.