Nikita Korotaev 3b23ce3ea2
add Russian lang (#529)
* add Russian lang support
---------

Co-authored-by: 风扇滑翔翼 <Fangliding.fshxy@outlook.com>
2024-07-16 22:42:05 +08:00

87 lines
5.0 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/2
Способ передачи данных на основе HTTP/2.
Он полностью реализован в соответствии со стандартом HTTP/2 и может быть перенаправлен через другие HTTP-серверы (например, Nginx).
В соответствии с рекомендациями HTTP/2, клиент и сервер должны одновременно включать TLS для нормальной работы этого способа передачи.
HTTP/2 имеет встроенное мультиплексирование, не рекомендуется включать mux.cool при использовании HTTP/2.
::: tip
Текущая версия способа передачи HTTP/2 **не требует**, чтобы **входящее соединение** (**сервер**) имело конфигурацию TLS.
Это позволяет в среде развертывания с разделением трафика для специальных целей использовать внешний шлюз для обработки TLS-соединения, в то время как Xray будет использоваться в качестве серверного приложения, а связь между шлюзом и Xray будет осуществляться по незашифрованному протоколу http/2, который называется `h2c`.
:::
::: warning
⚠️ Если вы используете fallback, обратите внимание на следующие моменты:
- Убедитесь, что (x)tlsSettings.alpn содержит h2, иначе HTTP/2 не сможет завершить TLS-рукопожатие.
- HTTP/2 не может быть разделен по пути, рекомендуется использовать SNI-разделение.
:::
## 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-заголовка, а значение представляет собой массив.