2024-10-03 18:31:07 +05:00

89 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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-заголовка, а значением является массив.