translate /config/transports/h2.md
							parent
							
								
									9e6e014694
								
							
						
					
					
						commit
						5d83a8fe73
					
				| 
						 | 
				
			
			@ -0,0 +1,86 @@
 | 
			
		|||
# 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-заголовка, а значение представляет собой массив.
 | 
			
		||||
		Loading…
	
		Reference in New Issue