mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2025-01-20 17:51:40 +03:00
89 lines
4.6 KiB
Markdown
89 lines
4.6 KiB
Markdown
# HTTP
|
||
|
||
Тип транспорта, основанный на HTTP/2 или HTTP/3.
|
||
|
||
Он полностью реализован в соответствии со стандартом HTTP и может быть проксирован через другие HTTP-серверы (например, Nginx).
|
||
|
||
Клиент должен включить TLS для корректной работы этого типа транспорта.
|
||
|
||
HTTP/2 и 3 имеют встроенное мультиплексирование, поэтому не рекомендуется включать mux.cool при их использовании.
|
||
|
||
::: tip
|
||
**В текущей версии для транспорта HTTP/2 не требуется обязательная настройка TLS на стороне сервера.**
|
||
|
||
Это позволяет использовать Xray в качестве бэкенд-приложения в специальных сценариях развертывания с разделением трафика, где внешний шлюз обрабатывает TLS-соединение, а связь между шлюзом и Xray осуществляется по протоколу HTTP без шифрования.
|
||
:::
|
||
|
||
::: tip
|
||
Этот транспорт будет работать в режиме h3, только если alpn содержит только `h3`.
|
||
:::
|
||
|
||
::: warning
|
||
- HTTP/2 и HTTP/3 не могут быть разделены по путям отката Xray. Использование разделения по путям отката не рекомендуется.
|
||
:::
|
||
|
||
## HttpObject
|
||
|
||
`HttpObject` соответствует элементу `httpSettings` в конфигурации транспорта.
|
||
|
||
```json
|
||
{
|
||
"host": ["xray.com"],
|
||
"path": "/random/path",
|
||
"read_idle_timeout": 10,
|
||
"health_check_timeout": 15,
|
||
"method": "PUT",
|
||
"headers": {
|
||
"Header": ["value"]
|
||
}
|
||
}
|
||
```
|
||
|
||
> `host`: \[string\]
|
||
|
||
Массив строк, каждый элемент которого является доменным именем.
|
||
|
||
Клиент случайным образом выбирает доменное имя из списка для связи, а сервер проверяет, находится ли доменное имя в списке.
|
||
|
||
::: tip
|
||
Если не указывать `"httpSettings"` или оставить `"host": []` пустым, будет использоваться значение по умолчанию `"www.example.com"`. Для успешного подключения необходимо, чтобы значения `"host"` на обеих сторонах совпадали. `"host": [""]` не является пустым значением.
|
||
:::
|
||
|
||
> `path`: string
|
||
|
||
Путь HTTP, начинающийся с `/`. Должен совпадать на клиенте и сервере.
|
||
|
||
Значение по умолчанию: `"/"`.
|
||
|
||
> `read_idle_timeout`: number
|
||
|
||
Время ожидания чтения в секундах. Если в течение этого времени не получено никаких данных, будет выполнена проверка работоспособности.
|
||
|
||
По умолчанию проверка работоспособности **отключена**.
|
||
|
||
::: tip
|
||
Настраивается **только** на стороне **клиента**.
|
||
:::
|
||
|
||
::: tip
|
||
Может помочь решить некоторые проблемы с "обрывом соединения".
|
||
:::
|
||
|
||
> `health_check_timeout`: number
|
||
|
||
Время ожидания проверки работоспособности в секундах. Если проверка работоспособности не будет завершена в течение этого времени, она считается неудачной. Значение по умолчанию: `15`.
|
||
|
||
::: tip
|
||
Настраивается **только** на стороне **клиента**.
|
||
:::
|
||
|
||
> `method`: string
|
||
|
||
HTTP-метод. Значение по умолчанию: `"PUT"`.
|
||
|
||
При настройке следует руководствоваться значениями, перечисленными [здесь](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods).
|
||
|
||
> `headers`: map{ string: \[string\] }
|
||
|
||
**Только для клиента.** Пользовательские HTTP-заголовки. Представляет собой пару ключ-значение, где каждый ключ является именем HTTP-заголовка, а значением является массив.
|