SimpleHTTPServer — Простой обработчик HTTP-запросов
Примечание
Модуль SimpleHTTPServer был объединён с http.server в Python 3. Инструмент 2to3 автоматически адаптирует импорты при преобразовании ваших исходных кодов в Python 3.
Предупреждение
SimpleHTTPServer не рекомендуется для использования в производстве. Он реализует только базовые проверки безопасности.
Модуль SimpleHTTPServer определяет единственный класс SimpleHTTPRequestHandler, который совместим по интерфейсу с BaseHTTPServer.BaseHTTPRequestHandler.
Модуль SimpleHTTPServer определяет следующий класс:
-
class SimpleHTTPServer.SimpleHTTPRequestHandler(request, client_address, server) -
Этот класс предоставляет файлы из текущего каталога и ниже, напрямую отображая структуру каталогов на HTTP-запросы.
Большая часть работы, такая как обработка запроса, выполняется базовым классом
BaseHTTPServer.BaseHTTPRequestHandler. Этот класс реализует функцииdo_GET()иdo_HEAD().Ниже перечислены атрибуты класса
SimpleHTTPRequestHandler:-
server_version
Это будет
"SimpleHTTP/" + __version__, где__version__определено на уровне модуля.-
extensions_map -
Словарь, сопоставляющий суффиксы с типами MIME. По умолчанию используется пустая строка, которая считается
application/octet-stream. Сопоставление выполняется без учёта регистра, поэтому словарь должен содержать только ключи в нижнем регистре.
Класс
SimpleHTTPRequestHandlerопределяет следующие методы:-
do_HEAD() -
Этот метод обрабатывает запросы типа
'HEAD': он отправляет заголовки, которые бы он отправил для эквивалентного запросаGET. См. методdo_GET()для более подробного объяснения возможных заголовков.
-
do_GET() -
Запрос сопоставляется с локальным файлом путём интерпретации запроса как пути, относительного к текущей рабочей директории.
Если запрос сопоставился с каталогом, проверяется наличие файла с именем
index.htmlилиindex.htm(в этом порядке). Если файл найден, возвращается его содержимое; иначе генерируется список каталога путём вызова методаlist_directory(). Этот метод используетos.listdir()для сканирования каталога и возвращает ответ об ошибке404в случае неудачи.Если запрос сопоставился с файлом, он открывается, и содержимое возвращается. Любая исключительная ситуация
IOErrorпри открытии запрошенного файла преобразуется в404,'File not found'ошибку. В противном случае тип содержимого определяется с помощью методаguess_type(), который в свою очередь использует переменную extensions_map.Выводится заголовок
'Content-type:'с определённым типом содержимого, а за ним — заголовок'Content-Length:'с размером файла и заголовок'Last-Modified:'с временем изменения файла.Затем следует пустая строка, обозначающая конец заголовков, а затем выводится содержимое файла. Если тип MIME файла начинается с
text/, файл открывается в текстовом режиме; в противном случае используется двоичный режим.Функция
test()в модулеSimpleHTTPServerявляется примером, создающим сервер с использованиемSimpleHTTPRequestHandlerв качестве обработчика.Добавлен в версии 2.5: Заголовок
'Last-Modified'.
-
Модуль SimpleHTTPServer может быть использован следующим образом для создания простого веб-сервера, предоставляющего файлы относительно текущей директории.
import SimpleHTTPServer
import SocketServer
PORT = 8000
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()
Модуль SimpleHTTPServer также может быть вызван напрямую с помощью переключателя -m интерпретатора с аргументом port number. Аналогично предыдущему примеру, это предоставляет файлы, относящиеся к текущей директории.
python -m SimpleHTTPServer 8000
См. также
-
ModuleBaseHTTPServer -
Базовая реализация класса для веб-сервера и обработчика запросов.
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/simplehttpserver.html