``SimpleHTTPServer`` --- Simple HTTP request handler **************************************************** Note: The ``SimpleHTTPServer`` module has been merged into ``http.server`` in Python 3.0. The *2to3* tool will automatically adapt imports when converting your sources to 3.0. The ``SimpleHTTPServer`` module defines a single class, ``SimpleHTTPRequestHandler``, which is interface-compatible with ``BaseHTTPServer.BaseHTTPRequestHandler``. The ``SimpleHTTPServer`` module defines the following class: class class 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()`` functions. The following are defined as class-level attributes of ``SimpleHTTPRequestHandler``: server_version This will be ``"SimpleHTTP/" + __version__``, where ``__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* 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. For example usage, see the implementation of the ``test()`` function. New in version 2.5: The ``'Last-Modified'`` header. See also: Module ``BaseHTTPServer`` Base class implementation for Web server and request handler.