haproxy/include/types
Willy Tarreau 96e312139a [MEDIUM] http: add support for "http-no-delay"
There are some very rare server-to-server applications that abuse the HTTP
protocol and expect the payload phase to be highly interactive, with many
interleaved data chunks in both directions within a single request. This is
absolutely not supported by the HTTP specification and will not work across
most proxies or servers. When such applications attempt to do this through
haproxy, it works but they will experience high delays due to the network
optimizations which favor performance by instructing the system to wait for
enough data to be available in order to only send full packets. Typical
delays are around 200 ms per round trip. Note that this only happens with
abnormal uses. Normal uses such as CONNECT requests nor WebSockets are not
affected.

When "option http-no-delay" is present in either the frontend or the backend
used by a connection, all such optimizations will be disabled in order to
make the exchanges as fast as possible. Of course this offers no guarantee on
the functionality, as it may break at any other place. But if it works via
HAProxy, it will work as fast as possible. This option should never be used
by default, and should never be used at all unless such a buggy application
is discovered. The impact of using this option is an increase of bandwidth
usage and CPU usage, which may significantly lower performance in high
latency environments.

This change should be backported to 1.4 since the first report of such a
misuse was in 1.4. Next patch will also be needed.
2011-05-30 18:42:41 +02:00
..
acl.h [MINOR] acl: add ability to check for internal response-only parameters 2011-02-23 15:32:20 +01:00
auth.h [REORG] http: move the http-request rules to proto_http 2011-03-13 22:00:24 +01:00
backend.h [MEDIUM] hash: add support for an 'avalanche' hash-type 2010-11-29 07:28:16 +01:00
buffers.h [MEDIUM] http: add support for "http-no-delay" 2011-05-30 18:42:41 +02:00
capture.h
checks.h [MEDIUM] Decrease server health based on http responses / events, version 3 2009-12-16 00:29:27 +01:00
counters.h [MEDIUM] stats: split frontend and backend stats 2011-03-13 22:00:23 +01:00
fd.h
freq_ctr.h [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
global.h [MINOR] log: ability to override the syslog tag 2010-12-30 11:43:36 +01:00
hdr_idx.h
lb_chash.h [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwlc.h [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwrr.h [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_map.h
log.h [MEDIUM] IPv6 support for syslog 2011-03-28 18:45:15 +02:00
pattern.h [MEDIUM] IPv6 support for stick-tables 2011-03-29 01:09:14 +02:00
peers.h [MEDIUM] add internal support for IPv6 server addresses 2011-03-13 22:00:12 +01:00
pipe.h
port_range.h
proto_http.h [MINOR] http: make the "HTTP 200" status code configurable. 2011-05-11 16:31:43 +02:00
proto_tcp.h [MINOR] session-counters: use "track-sc{1,2}" instead of "track-{fe,be}-counters" 2010-08-10 18:04:15 +02:00
protocols.h [MEDIUM] Enhance message errors management on binds 2010-11-05 10:34:07 +01:00
proxy.h [MEDIUM] http: add support for "http-no-delay" 2011-05-30 18:42:41 +02:00
queue.h
server.h [MEDIUM] server: add support for the "send-proxy" option 2011-03-20 11:53:50 +01:00
session.h [MAJOR] session: remove the ->srv pointer from struct session 2011-03-10 23:32:17 +01:00
signal.h [MEDIUM] signals: add support for registering functions and tasks 2010-08-27 18:00:40 +02:00
stick_table.h [MEDIUM] IPv6 support for stick-tables 2011-03-29 01:09:14 +02:00
stream_interface.h [MEDIUM] stream_sock: add support for sending the proxy protocol header line 2011-03-20 10:16:46 +01:00
task.h [MEDIUM] signals: add support for registering functions and tasks 2010-08-27 18:00:40 +02:00
template.h