45 lines
1.3 KiB
Markdown
45 lines
1.3 KiB
Markdown
# HTTP/2
|
||
|
||
基于 HTTP/2 的传输方式。
|
||
|
||
它完整按照 HTTP/2 标准实现,可以通过其它的 HTTP 服务器(如 Nginx)进行中转。
|
||
|
||
由 HTTP/2 的建议,客户端和服务器必须同时开启 TLS 才可以正常使用这个传输方式。
|
||
|
||
HTTP/2 内置多路复用,不建议使用 HTTP/2 时启用 mux.cool。
|
||
|
||
::: tip
|
||
当前版本的 HTTP/2 的传输方式并不强制要求服务器端有 TLS 配置.
|
||
这使得可以在特殊用途的分流部署环境中,由外部网关组件完成 TLS 层对话,Xray 作为后端应用,网关和 Xray 间使用称为 `h2c` 的明文 http/2 进行通讯。
|
||
:::
|
||
|
||
::: warning
|
||
⚠️ 如果你正在使用回落,请注意下列事项:
|
||
|
||
- 请确认 (x)tlsSettings.alpn 中包含 h2,否则 HTTP/2 无法完成 TLS 握手。
|
||
- HTTP/2 无法通过进行 Path 分流,建议使用 SNI 分流。
|
||
:::
|
||
|
||
## HttpObject
|
||
|
||
`HttpObject` 对应传输配置的 `httpSettings` 项。
|
||
|
||
```json
|
||
{
|
||
"host": ["xray.com"],
|
||
"path": "/random/path"
|
||
}
|
||
```
|
||
|
||
> `host`: \[string\]
|
||
|
||
一个字符串数组,每一个元素是一个域名。
|
||
|
||
客户端会随机从列表中选出一个域名进行通信,服务器会验证域名是否在列表中。
|
||
|
||
> `path` string
|
||
|
||
HTTP 路径,由 `/` 开头, 客户端和服务器必须一致。
|
||
|
||
默认值为 `"/"`。
|