!!! question "Since sing-box 1.14.0"
A string or an object.
When string, the tag of a shared HTTP Client defined in top-level http_clients.
When object:
{
"engine": "",
"version": 0,
"disable_version_fallback": false,
"headers": {},
... // HTTP2 Fields
"tls": {},
... // Dial Fields
}
HTTP engine to use.
Values:
go (default)applecronetapple uses NSURLSession, only available on Apple platforms.
!!! warning ""
Experimental only: due to the high memory overhead of both CGO and Network.framework,
do not use in hot paths on iOS and tvOS.
Supported fields:
headerstls.server_name (must match request host)tls.insecuretls.min_version / tls.max_versiontls.certificate / tls.certificate_pathtls.certificate_public_key_sha256Unsupported fields:
versiondisable_version_fallbacktls.enginetls.alpntls.disable_snitls.cipher_suitestls.curve_preferencestls.client_certificate / tls.client_certificate_path / tls.client_key / tls.client_key_pathtls.fragment / tls.record_fragmenttls.kernel_tx / tls.kernel_rxtls.echtls.utlstls.realitycronet uses Cronet, only available when sing-box is built with the with_naive_outbound tag.
Supported fields:
versiondisable_version_fallback (version = 3 only)headerstls.server_name (must match request host)tls.certificate / tls.certificate_pathtls.certificate_public_key_sha256tls.ech.config / tls.ech.config_path / tls.ech.query_server_namehttp2.stream_receive_window / http2.connection_receive_windowquic.stream_receive_window / quic.connection_receive_windowquic.idle_timeoutUnsupported fields:
tls.enginetls.disable_snitls.insecuretls.alpntls.min_version / tls.max_versiontls.cipher_suitestls.curve_preferencestls.client_certificate / tls.client_certificate_path / tls.client_key / tls.client_key_pathtls.fragment / tls.record_fragmenttls.kernel_tx / tls.kernel_rxtls.handshake_timeouttls.utlstls.realityhttp2.idle_timeouthttp2.keep_alive_periodhttp2.max_concurrent_streamsquic.keep_alive_periodquic.initial_packet_sizequic.disable_path_mtu_discoveryquic.max_concurrent_streamsHTTP version.
Available values: 1, 2, 3.
2 is used by default.
When 3, HTTP2 Fields are replaced by QUIC Fields.
Disable automatic fallback to lower HTTP version.
Custom HTTP headers.
Host header is used as request host.
When version is 2 (default).
See HTTP2 Fields for details.
When version is 3.
See QUIC Fields for details.
See TLS for details.
See Dial Fields for details.