mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-15 16:04:37 +00:00
6ba69841f8
It's been warning as being deprecated since 2.0-dev4, it's about time to drop it now. The error message recommends to either remove it or use "option httpclose" instead. It's still referred to in the old internal doc about the connection header, which itself seems highly inaccurate by now.
40 lines
1.8 KiB
Plaintext
40 lines
1.8 KiB
Plaintext
2011/04/20 - List of keep-alive / close options with associated behaviours.
|
|
|
|
PK="http-pretend-keepalive", HC="httpclose", SC="http-server-close",
|
|
|
|
0 = option not set
|
|
1 = option is set
|
|
* = option doesn't matter
|
|
|
|
Options can be split between frontend and backend, so some of them might have
|
|
a meaning only when combined by associating a frontend to a backend. Some forms
|
|
are not the normal ones and provide a behaviour compatible with another normal
|
|
form. Those are considered alternate forms and are marked "(alt)".
|
|
|
|
SC HC PK Behaviour
|
|
0 0 X tunnel mode
|
|
0 1 0 passive close, only set headers then tunnel
|
|
0 1 1 forced close with keep-alive announce (alt)
|
|
1 0 0 server close
|
|
1 0 1 server close with keep-alive announce
|
|
1 1 0 forced close (alt)
|
|
1 1 1 forced close with keep-alive announce (alt)
|
|
|
|
At this point this results in 4 distinct effective modes for a request being
|
|
processed :
|
|
- tunnel mode : Connection header is left untouched and body is ignored
|
|
- passive close : Connection header is changed and body is ignored
|
|
- server close : Connection header set, body scanned, client-side keep-alive
|
|
is made possible regardless of server-side capabilities
|
|
- forced close : Connection header set, body scanned, connection closed.
|
|
|
|
The "close" modes may be combined with a fake keep-alive announce to the server
|
|
in order to workaround buggy servers that disable chunked encoding and content
|
|
length announces when the client does not ask for keep-alive.
|
|
|
|
Note: "http-pretend-keepalive" alone has no effect. However, if it is set in a
|
|
backend while a frontend is in "http-close" mode, then the combination of
|
|
both will result in a forced close with keep-alive announces for requests
|
|
passing through both.
|
|
|