mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			72 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| \section{\module{SimpleHTTPServer} ---
 | |
|          Simple HTTP request handler}
 | |
| 
 | |
| \declaremodule{standard}{SimpleHTTPServer}
 | |
| \sectionauthor{Moshe Zadka}{moshez@zadka.site.co.il}
 | |
| \modulesynopsis{This module provides a basic request handler for HTTP
 | |
|                 servers.}
 | |
| 
 | |
| 
 | |
| The \module{SimpleHTTPServer} module defines a request-handler class,
 | |
| interface compatible with \class{BaseHTTPServer.BaseHTTPRequestHandler}
 | |
| which serves files only from a base directory.
 | |
| 
 | |
| The \module{SimpleHTTPServer} module defines the following class:
 | |
| 
 | |
| \begin{classdesc}{SimpleHTTPRequestHandler}{request, client_address, server}
 | |
| This class is used, to serve files from current directory and below,
 | |
| directly mapping the directory structure to HTTP requests.
 | |
| 
 | |
| A lot of the work is done by the base class
 | |
| \class{BaseHTTPServer.BaseHTTPRequestHandler}, such as parsing the
 | |
| request.  This class implements the \function{do_GET()} and
 | |
| \function{do_HEAD()} functions.
 | |
| \end{classdesc}
 | |
| 
 | |
| The \class{SimpleHTTPRequestHandler} defines the following member
 | |
| variables:
 | |
| 
 | |
| \begin{memberdesc}{server_version}
 | |
| This will be \code{"SimpleHTTP/" + __version__}, where \code{__version__}
 | |
| is defined in the module.
 | |
| \end{memberdesc}
 | |
| 
 | |
| \begin{memberdesc}{extensions_map}
 | |
| A dictionary mapping suffixes into MIME types. Default is signified
 | |
| by an empty string, and is considered to be \code{text/plain}.
 | |
| The mapping is used case-insensitively, and so should contain only
 | |
| lower-cased keys.
 | |
| \end{memberdesc}
 | |
| 
 | |
| The \class{SimpleHTTPRequestHandler} defines the following methods:
 | |
| 
 | |
| \begin{methoddesc}{do_HEAD}{}
 | |
| This method serves the \code{'HEAD'} request type: it sends the
 | |
| headers it would send for the equivalent \code{GET} request. See the
 | |
| \method{do_GET()} method for more complete explanation of the possible
 | |
| headers.
 | |
| \end{methoddesc}
 | |
| 
 | |
| \begin{methoddesc}{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, a \code{403} respond is output,
 | |
| followed by the explanation \code{'Directory listing not supported'}.
 | |
| Any \exception{IOError} exception in opening the requested file, is mapped
 | |
| to a \code{404}, \code{'File not found'} error. Otherwise, the content
 | |
| type is guessed using the \var{extensions_map} variable.
 | |
| 
 | |
| A \code{'Content-type:'} with the guessed content type is output, and
 | |
| then a blank line, signifying end of headers, and then the contents of
 | |
| the file. The file is always opened in binary mode.
 | |
| 
 | |
| For example usage, see the implementation of the \function{test()}
 | |
| function.
 | |
| \end{methoddesc}
 | |
| 
 | |
| 
 | |
| \begin{seealso}
 | |
|   \seemodule{BaseHTTPServer}{Base class implementation for Web server
 | |
|                              and request handler.}
 | |
| \end{seealso}
 | 
