MyTetra Share
Делитесь знаниями!
SimpleHTTPServer — Simple HTTP request handler
Время создания: 13.07.2018 15:34
Текстовые метки: python http server
Раздел: Python
Запись: Velonski/mytetra-database/master/base/1531478096xeld895v0i/text.html на raw.githubusercontent.com

The SimpleHTTPServer module defines a single class, SimpleHTTPRequestHandler, which is interface-compatible with BaseHTTPServer.BaseHTTPRequestHandler.


The SimpleHTTPServer module defines the following 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.


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


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

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования