The SimpleHTTPServer Module
The SimpleHTTPServer module is a simple HTTP server that provides standard GET and HEAD
request handlers. The pathname given by the client is interpreted as
a relative filename (relative to the current directory when the
server was started, that is). The module’s use is demonstrated in Example 7-37.
Example 7-37. Using the SimpleHTTPServer Module
File: simplehttpserver-example-1.py
import SimpleHTTPServer
import SocketServer
# minimal web server. serves files relative to the
# current directory.
PORT = 8000
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()
serving at port 8000
localhost - - [11/Oct/1999 15:07:44] code 403, message Directory listing not sup
ported
localhost - - [11/Oct/1999 15:07:44] "GET / HTTP/1.1" 403 -
localhost - - [11/Oct/1999 15:07:56] "GET /samples/sample.htm HTTP/1.1" 200 -The server ignores drive letters and relative pathnames (such as `..'). However, it does not implement any other access control mechanisms, so be careful.
Example 7-38 implements a truly minimal web proxy. When sent to
a proxy, the HTTP requests should include the full URI for the target
server. This server uses urllib to fetch data from the
target.
Example 7-38. Using the SimpleHTTPServer Module as a Proxy
File: simplehttpserver-example-2.py # a truly minimal HTTP proxy import SocketServer import SimpleHTTPServer import urllib PORT = 1234 class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler): ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access