Сообщить об ошибке.

Класс CGIHTTPRequestHandler() модуля http.server в Python

Обслуживание вывода CGI сценариев

Синтаксис:

import http.server

http.server.CGIHTTPRequestHandler(request, client_address, server)

Параметры:

  • request - запрос,
  • client_address - кортеж формы (host, port),
  • server - экземпляр сервера.

Возвращаемое значение:

Описание:

Класс CGIHTTPRequestHandler() модуля http.server используется для обслуживания файлов или вывода сценариев CGI, расположенных в текущем каталоге. Обратите внимание, что сопоставление иерархической структуры HTTP с локальной структурой каталогов выполняется точно так же, как в SimpleHTTPRequestHandler.

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

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

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

Объект CGIHTTPRequestHandler.

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

CGIHTTPRequestHandler.cgi_directories:

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

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

CGIHTTPRequestHandler.do_POST():

Метод CGIHTTPRequestHandler.do_POST() обслуживает тип запроса POST, разрешенный только для сценариев CGI.

При попытке выполнить POST-запрос для URL-адреса, отличного от CGI сценария, будет выводится ошибка HTTP 501.