yes | yes | yes | yes
Arguments : none
- By default, the HTTP protocol is processed as-is. Inserting, deleting, or
+ Historically, the HTTP protocol is processed as-is. Inserting, deleting, or
modifying a header field requires to rewrite the affected part in the buffer
- and to move the buffer's tail accordingly. Since this principle has deep
- roots in haproxy, the HTTP/2 protocol is converted to HTTP/1.1 before being
- processed this way. It also results in the inability to establish HTTP/2
- connections to servers because of the loss of HTTP/2 semantics in the HTTP/1
- representation.
+ and to move the buffer's tail accordingly. This mode is known as the legacy
+ HTTP mode. Since this principle has deep roots in haproxy, the HTTP/2
+ protocol is converted to HTTP/1.1 before being processed this way. It also
+ results in the inability to establish HTTP/2 connections to servers because
+ of the loss of HTTP/2 semantics in the HTTP/1 representation.
HTX is the name of a totally new native internal representation for the HTTP
protocol, that is agnostic to the version and aims at preserving semantics
all along the chain. It relies on a fast parsing, tokenizing and indexing of
the protocol elements so that no more memory moves are necessary and that
- most elements are directly accessed. This mechanism is still limited to the
- most basic operations (no compression, filters, Lua, applets, cache, etc).
- But it supports using either HTTP/1 or HTTP/2 on any side regardless of the
- other side's version.
-
- This option indicates that HTX needs to be used. It will cause errors to be
- emitted if incompatible features are used, but will allow H2 to be selected
- as a server protocol. It is recommended to use this option on new reasonably
- simple configurations, but since the feature still has incomplete functional
- coverage, it is not enabled by default.
+ most elements are directly accessed. It supports using either HTTP/1 or
+ HTTP/2 on any side regardless of the other side's version. It also supports
+ upgrades from TCP to HTTP and implicit ones from HTTP/1 to HTTP/2 (matching
+ the HTTP/2 preface).
+
+ This option indicates that HTX needs to be used. Since the version 2.0-dev3,
+ the HTX is the default mode. To switch back on the legacy HTTP mode, the
+ option must be explicitly disabled using the "no" prefix. For prior versions,
+ the feature has incomplete functional coverage, so it is not enabled by
+ default.
See also : "mode http"