SimpleHTTPServer
— 简单 HTTP 请求处理程序
¶
注意
The
SimpleHTTPServer
module has been merged into
http.server
in Python 3. The
2to3
tool will automatically adapt imports when converting your sources to Python 3.
警告
SimpleHTTPServer
不推荐用于生产。它只实现基本安全校验。
The
SimpleHTTPServer
module defines a single class,
SimpleHTTPRequestHandler
, which is interface-compatible with
BaseHTTPServer.BaseHTTPRequestHandler
.
The
SimpleHTTPServer
模块定义了下列类:
SimpleHTTPServer.
SimpleHTTPRequestHandler
(
request
,
client_address
,
server
)
¶
This class serves files from the current directory and below, directly mapping the directory structure to HTTP requests.
A lot of the work, such as parsing the request, is done by the base class
BaseHTTPServer.BaseHTTPRequestHandler
. This class implements the
do_GET()
and
do_HEAD()
函数。
The following are defined as class-level attributes of
SimpleHTTPRequestHandler
:
server_version
¶
This will be
"SimpleHTTP/" + __version__
,其中
__version__
is defined at the module level.
extensions_map
¶
A dictionary mapping suffixes into MIME types. The default is signified by an empty string, and is considered to be
application/octet-stream
. The mapping is used case-insensitively, and so should contain only lower-cased keys.
The
SimpleHTTPRequestHandler
class defines the following methods:
do_HEAD
(
)
¶
This method serves the
'HEAD'
request type: it sends the headers it would send for the equivalent
GET
request. See the
do_GET()
method for a more complete explanation of the possible headers.
do_GET
(
)
¶
The request is mapped to a local file by interpreting the request as a path relative to the current working directory.
If the request was mapped to a directory, the directory is checked for a file named
index.html
or
index.htm
(in that order). If found, the file’s contents are returned; otherwise a directory listing is generated by calling the
list_directory()
method. This method uses
os.listdir()
to scan the directory, and returns a
404
error response if the
listdir()
fails.
If the request was mapped to a file, it is opened and the contents are returned. Any
IOError
exception in opening the requested file is mapped to a
404
,
'File not found'
error. Otherwise, the content type is guessed by calling the
guess_type()
method, which in turn uses the
extensions_map
变量。
A
'Content-type:'
header with the guessed content type is output, followed by a
'Content-Length:'
header with the file’s size and a
'Last-Modified:'
header with the file’s modification time.
Then follows a blank line signifying the end of the headers, and then the contents of the file are output. If the file’s MIME type starts with
text/
the file is opened in text mode; otherwise binary mode is used.
The
test()
function in the
SimpleHTTPServer
module is an example which creates a server using the
SimpleHTTPRequestHandler
as the Handler.
New in version 2.5:
The
'Last-Modified'
头。
The
SimpleHTTPServer
module can be used in the following manner in order to set up a very basic web server serving files relative to the current directory.
import SimpleHTTPServer import SocketServer PORT = 8000 Handler = SimpleHTTPServer.SimpleHTTPRequestHandler httpd = SocketServer.TCPServer(("", PORT), Handler) print "serving at port", PORT httpd.serve_forever()
The
SimpleHTTPServer
module can also be invoked directly using the
-m
switch of the interpreter with a
port number
argument. Similar to the previous example, this serves the files relative to the current directory.
python -m SimpleHTTPServer 8000
另请参阅
BaseHTTPServer
Base class implementation for Web server and request handler.