mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2025-03-03 21:53:14 +03:00
* ru Add xhttp mode downloadSettings and extra
This commit is contained in:
parent
8a908de60b
commit
2f70265fb0
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<Badge text="v1.8.16+" type="warning"/>
|
<Badge text="v1.8.16+" type="warning"/>
|
||||||
|
|
||||||
Используется для загрузки с помощью HTTP-фрагментированной передачи, загрузка осуществляется с помощью нескольких HTTP POST-запросов.
|
Используется для загрузки с помощью HTTP-фрагментированной передачи, загрузка осуществляется с помощью нескольких HTTP POST-запросов (или потоковых запросов).
|
||||||
|
|
||||||
Может использоваться через CDN, не поддерживающие WebSocket, но есть несколько требований:
|
Может использоваться через CDN, не поддерживающие WebSocket, но есть несколько требований:
|
||||||
|
|
||||||
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
"mode": "auto",
|
||||||
"path": "/",
|
"path": "/",
|
||||||
"host": "xray.com",
|
"host": "xray.com",
|
||||||
"headers": {
|
"headers": {
|
||||||
@ -35,10 +36,32 @@
|
|||||||
"maxConnections": 0,
|
"maxConnections": 0,
|
||||||
"cMaxReuseTimes": 0,
|
"cMaxReuseTimes": 0,
|
||||||
"cMaxLifetimeMs": 0
|
"cMaxLifetimeMs": 0
|
||||||
}
|
},
|
||||||
|
"downloadSettings": {
|
||||||
|
"address": "example.com",
|
||||||
|
"port": 443,
|
||||||
|
"network": "xhttp",
|
||||||
|
"security": "none",
|
||||||
|
"tlsSettings": {},
|
||||||
|
"realitySettings": {},
|
||||||
|
"xhttpSettings": {
|
||||||
|
"path": "/" // должен быть одинаковым
|
||||||
|
},
|
||||||
|
"sockopt": {
|
||||||
|
"dialerProxy": "" // просто пример
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"extra": {}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> `mode`: string
|
||||||
|
|
||||||
|
Режим, используемый для передачи данных по XHTTP. Значение по умолчанию — `"auto"`. В этом режиме клиент при работе с REALITY использует потоковую передачу, в противном случае применяется передача с разбивкой на пакеты. Сервер поддерживает оба режима одновременно.
|
||||||
|
|
||||||
|
- `"packet-up"`: используется передача данных с разбивкой на пакеты. Каждое сообщение упаковывается в отдельный HTTP POST-запрос и собирается обратно на стороне сервера. Подходит для работы с любыми HTTP-проксирующими устройствами.
|
||||||
|
- `"stream-up"`: используется потоковая передача данных. Открывается долгоживущее HTTP-соединение для отправки пакетов, аналогично существующим методам H2 / H3 / gRPC. Этот способ быстрее, но имеет меньшую совместимость.
|
||||||
|
|
||||||
> `path`: string
|
> `path`: string
|
||||||
|
|
||||||
Путь HTTP-протокола, используемый XHTTP. Значение по умолчанию — `"/"`.
|
Путь HTTP-протокола, используемый XHTTP. Значение по умолчанию — `"/"`.
|
||||||
@ -130,6 +153,56 @@
|
|||||||
|
|
||||||
Значение по умолчанию — 0 (неограниченно). Максимальное время "жизни" соединения. По истечении этого времени ядро больше не будет назначать потоки этому соединению, и оно будет разорвано после закрытия последнего внутреннего потока.
|
Значение по умолчанию — 0 (неограниченно). Максимальное время "жизни" соединения. По истечении этого времени ядро больше не будет назначать потоки этому соединению, и оно будет разорвано после закрытия последнего внутреннего потока.
|
||||||
|
|
||||||
|
## downloadSettings
|
||||||
|
Используется для настройки разделения соединений при загрузке данных по XHTTP (опционально). Важно: разделенный трафик должен достигать одного и того же входа на стороне сервера.
|
||||||
|
Внутри `downloadSettings` находится вложенный объект [StreamSettingsObject](../transport.md#streamsettingsobject), который может включать такие опции, как TLS, REALITY, `sockopt` и другие. Помимо этого, есть два уникальных параметра:
|
||||||
|
|
||||||
|
> `address`: address
|
||||||
|
|
||||||
|
Адрес сервера для загрузки данных. Поддерживает доменные имена, IPv4 и IPv6.
|
||||||
|
|
||||||
|
> `port`: number
|
||||||
|
|
||||||
|
Порт сервера для загрузки данных.
|
||||||
|
|
||||||
|
## extra
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"extra": {
|
||||||
|
"headers": {
|
||||||
|
"key": "value"
|
||||||
|
},
|
||||||
|
"scMaxEachPostBytes": 1000000,
|
||||||
|
"scMaxConcurrentPosts": 100,
|
||||||
|
"scMinPostsIntervalMs": 30,
|
||||||
|
"noSSEHeader": false,
|
||||||
|
"xPaddingBytes": "100-1000",
|
||||||
|
"xmux": {
|
||||||
|
"maxConcurrency": 0,
|
||||||
|
"maxConnections": 0,
|
||||||
|
"cMaxReuseTimes": 0,
|
||||||
|
"cMaxLifetimeMs": 0
|
||||||
|
},
|
||||||
|
"downloadSettings": {
|
||||||
|
"address": "example.com",
|
||||||
|
"port": 443,
|
||||||
|
"network": "xhttp",
|
||||||
|
"security": "none",
|
||||||
|
"tlsSettings": {},
|
||||||
|
"realitySettings": {},
|
||||||
|
"xhttpSettings": {
|
||||||
|
"path": "/" // должно совпадать
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
`extra` — это вложенный объект `XHttpObject`, используемый для предоставления исходного JSON в общий доступ. Настройки, указанные внутри `extra`, переопределяют соответствующие настройки, заданные снаружи.
|
||||||
|
|
||||||
|
В настоящее время следующие параметры внутри `extra` **не работают**:
|
||||||
|
`host`, `path`, `mode`, `downloadSettings->sockopt`, `extra`.
|
||||||
|
|
||||||
## Версия HTTP
|
## Версия HTTP
|
||||||
|
|
||||||
### Поведение клиента
|
### Поведение клиента
|
||||||
@ -177,4 +250,4 @@
|
|||||||
|
|
||||||
* Не ожидайте, что CDN будет правильно передавать все заголовки. Цель этого протокола — обойти CDN, которые не поддерживают WS, а такие CDN обычно ведут себя не очень хорошо.
|
* Не ожидайте, что CDN будет правильно передавать все заголовки. Цель этого протокола — обойти CDN, которые не поддерживают WS, а такие CDN обычно ведут себя не очень хорошо.
|
||||||
|
|
||||||
* Следует предполагать, что все HTTP-соединения не поддерживают потоковые запросы, поэтому размер каждого пакета, отправляемого по исходящему соединению, должен основываться на задержке, пропускной способности и ограничениях самого промежуточного узла (аналогично MTU и алгоритму Нейгла в TCP).
|
* Следует предполагать, что все HTTP-соединения не поддерживают потоковые запросы, поэтому размер каждого пакета, отправляемого по исходящему соединению, должен основываться на задержке, пропускной способности и ограничениях самого промежуточного узла (аналогично MTU и алгоритму Нейгла в TCP).
|
||||||
|
Loading…
x
Reference in New Issue
Block a user