Commit 587c98c8 authored by Martin v. Löwis's avatar Martin v. Löwis

Patch #430706: Persistent connections in BaseHTTPServer.

parent 8ec03e05
......@@ -123,9 +123,12 @@ class variable.
\end{memberdesc}
\begin{memberdesc}{protocol_version}
This specifies the HTTP protocol version used in responses.
Typically, this should not be overridden. Defaults to
\code{'HTTP/1.0'}.
This specifies the HTTP protocol version used in responses. If set
to \code{'HTTP/1.1'}, the server will permit HTTP persistent
connections; however, your server \emph{must} then include an
accurate \code{Content-Length} header (using \method{send_header()})
in all of its responses to clients. For backwards compatibility,
the setting defaults to \code{'HTTP/1.0'}.
\end{memberdesc}
\begin{memberdesc}{MessageClass}
......@@ -148,9 +151,16 @@ error response, and \var{longmessage} as the \var{explain} key
A \class{BaseHTTPRequestHandler} instance has the following methods:
\begin{methoddesc}{handle}{}
Overrides the superclass' \method{handle()} method to provide the
specific handler behavior. This method will parse and dispatch
the request to the appropriate \method{do_*()} method.
Calls \method{handle_one_request()} once (or, if persistent connections
are enabled, multiple times) to handle incoming HTTP requests.
You should never need to override it; instead, implement appropriate
\method{do_*()} methods.
\end{methoddesc}
\begin{methoddesc}{handle_one_request}{}
This method will parse and dispatch
the request to the appropriate \method{do_*()} method. You should
never need to override it.
\end{methoddesc}
\begin{methoddesc}{send_error}{code\optional{, message}}
......
This diff is collapsed.
......@@ -82,6 +82,7 @@ class SimpleHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
return None
self.send_response(200)
self.send_header("Content-type", ctype)
self.send_header("Content-Length", str(os.fstat(f.fileno())[6]))
self.end_headers()
return f
......@@ -115,9 +116,11 @@ class SimpleHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
# Note: a link to a directory displays with @ and links with /
f.write('<li><a href="%s">%s</a>\n' % (linkname, displayname))
f.write("</ul>\n<hr>\n")
length = f.tell()
f.seek(0)
self.send_response(200)
self.send_header("Content-type", "text/html")
self.send_header("Content-Length", str(length))
self.end_headers()
return f
......
......@@ -44,6 +44,9 @@ Extension modules
Library
- The BaseHTTPServer implements now optionally HTTP/1.1 persistent
connections.
- socket module: the SSL support was broken out of the main
_socket module C helper and placed into a new _ssl helper
which now gets imported by socket.py if available and working.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment