|
Apache HTTP Server
Apache Keep-Alive Support
What is Keep-Alive?
The Keep-Alive extension to HTTP, as defined by the HTTP/1.1 draft, allows
persistent connections. These long-lived HTTP sessions allow multiple requests to be send over
the same TCP connection, and in some cases have been shown to result in an almost 50% speedup
in latency times for HTML documents with lots of images.
Enabling Keep-Alive Support
Apache 1.1 comes with Keep-Alive support on by default, however there are some directives you
can use to modify Apache's behavior:
Note: Apache 1.2 uses a different syntax for the
KeepAlive directive.
KeepAlive
Syntax:
KeepAlive max-requests
Default:
KeepAlive 5
Context:
server config
Status:
Core
This directive enables Keep-Alive support. Set max-requests to the maximum number
of requests you want Apache to entertain per connection. A limit is imposed to prevent a
client from hogging your server resources. Set this to 0 to disable support.
KeepAliveTimeout
Syntax:
KeepAliveTimeout seconds
Default:
KeepAliveTimeout 15
Context:
server config
Status:
Core
The number of seconds Apache will wait for a subsequent request before closing the
connection. Once a request has been received, the timeout value specified by the
Timeout directive
applies.
When Keep-Alive Is Used
In order for Keep-Alive support to be used, first the browser must support it. Many current
browsers, including Netscape Navigator 2.0, and Spyglass Mosaic-based browsers (including
Microsoft Internet Explorer) do. Note, however, that some Windows 95-based browsers misbehave
with Keep-Alive-supporting servers; they may occasionally hang on a connect. This has been
observed with several Windows browsers, and occurs when connecting to any Keep-Alive server,
not just Apache. Netscape 3.0b5 and later versions are known to work around this problem.
However, Keep-Alive support only is active with files where the length is known beforehand.
This means that most CGI scripts, server-side included files and directory listings will not
use the Keep-Alive protocol. While this should be completely transparent to the end user, it
is something the web-master may want to keep in mind.
Apache HTTP Server
|