mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2025-03-03 13:43:15 +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"/>
|
||||
|
||||
Используется для загрузки с помощью HTTP-фрагментированной передачи, загрузка осуществляется с помощью нескольких HTTP POST-запросов.
|
||||
Используется для загрузки с помощью HTTP-фрагментированной передачи, загрузка осуществляется с помощью нескольких HTTP POST-запросов (или потоковых запросов).
|
||||
|
||||
Может использоваться через CDN, не поддерживающие WebSocket, но есть несколько требований:
|
||||
|
||||
@ -20,6 +20,7 @@
|
||||
|
||||
```json
|
||||
{
|
||||
"mode": "auto",
|
||||
"path": "/",
|
||||
"host": "xray.com",
|
||||
"headers": {
|
||||
@ -35,10 +36,32 @@
|
||||
"maxConnections": 0,
|
||||
"cMaxReuseTimes": 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
|
||||
|
||||
Путь HTTP-протокола, используемый XHTTP. Значение по умолчанию — `"/"`.
|
||||
@ -130,6 +153,56 @@
|
||||
|
||||
Значение по умолчанию — 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
|
||||
|
||||
### Поведение клиента
|
||||
@ -177,4 +250,4 @@
|
||||
|
||||
* Не ожидайте, что CDN будет правильно передавать все заголовки. Цель этого протокола — обойти CDN, которые не поддерживают WS, а такие CDN обычно ведут себя не очень хорошо.
|
||||
|
||||
* Следует предполагать, что все HTTP-соединения не поддерживают потоковые запросы, поэтому размер каждого пакета, отправляемого по исходящему соединению, должен основываться на задержке, пропускной способности и ограничениях самого промежуточного узла (аналогично MTU и алгоритму Нейгла в TCP).
|
||||
* Следует предполагать, что все HTTP-соединения не поддерживают потоковые запросы, поэтому размер каждого пакета, отправляемого по исходящему соединению, должен основываться на задержке, пропускной способности и ограничениях самого промежуточного узла (аналогично MTU и алгоритму Нейгла в TCP).
|
||||
|
Loading…
x
Reference in New Issue
Block a user