Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 49 additions & 5 deletions Doc/library/http.server.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,17 @@ handler. Code to create and run the server looks like this::
This class builds on the :class:`~socketserver.TCPServer` class by storing
the server address as instance variables named :attr:`server_name` and
:attr:`server_port`. The server is accessible by the handler, typically
through the handler's :attr:`server` instance variable.
through the handler's :attr:`~socketserver.BaseRequestHandler.server`
instance variable.

.. attribute:: server_name

The HTTP server's fully qualified domain name.

.. attribute:: server_port

The HTTP server's port number obtained from *server_address*.


.. class:: ThreadingHTTPServer(server_address, RequestHandlerClass)

Expand Down Expand Up @@ -390,6 +400,14 @@ instantiation, of which this module provides three different variants:
This will be ``"SimpleHTTP/" + __version__``, where ``__version__`` is
defined at the module level.

.. attribute:: index_pages

Specifies the filenames that are treated as directory index pages.

Defaults to ``("index.html", "index.htm")``.

.. versionadded:: 3.12

.. attribute:: extensions_map

A dictionary mapping suffixes into MIME types, contains custom overrides
Expand All @@ -413,8 +431,8 @@ instantiation, of which this module provides three different variants:
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
If the request was mapped to a directory, the directory is checked for
an index page as specified by :attr:`index_pages`. If found, the
file's contents are returned; otherwise a directory listing is generated
by calling the :meth:`list_directory` method. This method uses
:func:`os.listdir` to scan the directory, and returns a ``404`` error
Expand All @@ -441,6 +459,30 @@ instantiation, of which this module provides three different variants:
.. versionchanged:: 3.7
Support of the ``'If-Modified-Since'`` header.

.. method:: list_directory(path)

Helper to list the contents of *path* when no index page is present.

This returns either a :term:`file-like object` (which must be closed
by the caller) or ``None`` to indicate an error, in which case the
caller has nothing further to do. In either case, the headers are sent.

.. method:: guess_type(path)

Guess the type of the file at the given *path*.

This returns a string of the form ``type/subtype``, usable for
a MIME Content-type header.

The default implementation looks the file's extension up in
:attr:`extensions_map`, falling back to
:func:`mimetypes.guess_file_type` and then to
``'application/octet-stream'``.

.. versionchanged:: 3.13
Add :func:`mimetypes.guess_file_type` as a fallback.


The :class:`SimpleHTTPRequestHandler` class can be used in the following
manner in order to create a very basic webserver serving files relative to
the current directory::
Expand All @@ -459,7 +501,7 @@ the current directory::

:class:`SimpleHTTPRequestHandler` can also be subclassed to enhance behavior,
such as using different index file names by overriding the class attribute
:attr:`index_pages`.
:attr:`~SimpleHTTPRequestHandler.index_pages`.


.. class:: CGIHTTPRequestHandler(request, client_address, server)
Expand All @@ -480,7 +522,9 @@ such as using different index file names by overriding the class attribute
the other common server configuration is to treat special extensions as
denoting CGI scripts.

The :func:`do_GET` and :func:`do_HEAD` functions are modified to run CGI scripts
The :func:`~SimpleHTTPRequestHandler.do_GET` and
:func:`~SimpleHTTPRequestHandler.do_HEAD` functions
are modified to run CGI scripts
and serve the output, instead of serving files, if the request leads to
somewhere below the ``cgi_directories`` path.

Expand Down
1 change: 0 additions & 1 deletion Doc/tools/.nitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ Doc/library/ast.rst
Doc/library/asyncio-extending.rst
Doc/library/email.charset.rst
Doc/library/email.parser.rst
Doc/library/http.server.rst
Doc/library/importlib.rst
Doc/library/logging.config.rst
Doc/library/logging.handlers.rst
Expand Down
Loading