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 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, 'Filenotfound' error. Otherwise, the content
type is guessed by calling the guess_type() method, which in turn
uses the extensions_map variable.

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 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.

importSimpleHTTPServerimportSocketServerPORT=8000Handler=SimpleHTTPServer.SimpleHTTPRequestHandlerhttpd=SocketServer.TCPServer(("",PORT),Handler)print"serving at port",PORThttpd.serve_forever()

The SimpleHTTPServer module can also be invoked directly using the
-m switch of the interpreter with a portnumber argument.
Similar to the previous example, this serves the files relative to the
current directory.