Nikita Korotaev
2 months ago
committed by
GitHub
7 changed files with 117 additions and 93 deletions
@ -0,0 +1,88 @@
|
||||
# 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-заголовка, а значением является массив. |
Loading…
Reference in new issue