Spec-Zone.ru › Python 2.7

CGIHTTPServer — Обработчик HTTP-запросов, поддерживающий CGI

Примечание

Модуль CGIHTTPServer был объединён в http.server в Python 3. Инструмент 2to3 автоматически адаптирует импорты при преобразовании ваших источников в Python 3.

Модуль CGIHTTPServer определяет класс обработчика запросов, совместимый с BaseHTTPServer.BaseHTTPRequestHandler и наследующий поведение от SimpleHTTPServer.SimpleHTTPRequestHandler, но также может запускать CGI-скрипты.

Примечание

Этот модуль может запускать CGI-скрипты на системах Unix и Windows.

Примечание

CGI-скрипты, запущенные классом CGIHTTPRequestHandler, не могут выполнять перенаправления (HTTP-код 302), потому что код 200 (вывод скрипта следует) отправляется до выполнения CGI-скрипта. Это предотвращает установку кода состояния.

Модуль CGIHTTPServer определяет следующие классы:

class CGIHTTPServer.CGIHTTPRequestHandler(request, client_address, server)

Этот класс используется для предоставления файлов или вывода CGI-скриптов из текущей директории и ниже. Обратите внимание, что сопоставление иерархической структуры HTTP с локальной структурой директорий точно такое же, как в SimpleHTTPServer.SimpleHTTPRequestHandler.

Однако класс запустит CGI-скрипт вместо того, чтобы предоставить его как файл, если он определит его как CGI-скрипт. Используются только CGI-скрипты на основе директорий — другая распространённая конфигурация сервера состоит в том, чтобы обрабатывать специальные расширения как обозначение CGI-скриптов.

Функции do_GET() и do_HEAD() изменены для запуска CGI-скриптов и предоставления вывода вместо файлов, если запрос ведёт к местоположению ниже директории cgi_directories.

Класс CGIHTTPRequestHandler определяет следующие данные члена:

cgi_directories

По умолчанию ['/cgi-bin', '/htbin'] и описывает каталоги, которые должны рассматриваться как содержащие CGI-скрипты.

Класс CGIHTTPRequestHandler определяет следующие методы:

do_POST()

Этот метод обслуживает запросы типа 'POST', разрешённые только для CGI-скриптов. При попытке отправки POST-запроса на не-CGI-URL выводится ошибка 501, «Можно отправлять только POST-запросы на CGI-скрипты».

Обратите внимание, что CGI-скрипты будут выполняться с UID пользователя nobody по соображениям безопасности. Проблемы с CGI-скриптом будут переведены в ошибку 403.

Пример использования см. в реализации функции test().

См. также

Module BaseHTTPServer

Реализация базового класса для веб-сервера и обработчика запросов.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/cgihttpserver.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API