1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<meta name="generator" content="HTML Tidy, see www.w3.org" />
<title>Apache Keep-Alive Support</title>
</head>
<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
vlink="#000080" alink="#FF0000">
<!--#include virtual="header.html" -->
<h1 align="CENTER">Apache Keep-Alive Support</h1>
<hr />
<h2>What is Keep-Alive?</h2>
The Keep-Alive extension to HTTP, as defined by the
<code>HTTP/1.1</code> 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.
<h2>Enabling Keep-Alive Support</h2>
Apache 1.1 comes with Keep-Alive support on by default, however
there are some directives you can use to modify Apache's
behavior:
<p><strong>Note</strong>: Apache 1.2 uses a different syntax
for the <a href="mod/core.html#keepalive">KeepAlive</a>
directive.</p>
<h3>KeepAlive</h3>
<a href="mod/directive-dict.html#Syntax"
rel="Help"><strong>Syntax:</strong></a> KeepAlive
<em>max-requests</em><br />
<a href="mod/directive-dict.html#Default"
rel="Help"><strong>Default:</strong></a> <code>KeepAlive
5</code><br />
<a href="mod/directive-dict.html#Context"
rel="Help"><strong>Context:</strong></a> server config<br />
<a href="mod/directive-dict.html#Status"
rel="Help"><strong>Status:</strong></a> Core
<p>This directive enables Keep-Alive support. Set
<em>max-requests</em> 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 <code>0</code> to disable support.</p>
<h3>KeepAliveTimeout</h3>
<a href="mod/directive-dict.html#Syntax"
rel="Help"><strong>Syntax:</strong></a> KeepAliveTimeout
<em>seconds</em><br />
<a href="mod/directive-dict.html#Default"
rel="Help"><strong>Default:</strong></a> <code>KeepAliveTimeout
15</code><br />
<a href="mod/directive-dict.html#Context"
rel="Help"><strong>Context:</strong></a> server config<br />
<a href="mod/directive-dict.html#Status"
rel="Help"><strong>Status:</strong></a> Core
<p>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 <a
href="mod/core.html#timeout"><code>Timeout</code></a> directive
applies.</p>
<h2>When Keep-Alive Is Used</h2>
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.
<p>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.</p>
<!--#include virtual="footer.html" -->
</body>
</html>
|