From 458120dd40db6b4df55a4e96b650e16798ef06a0 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Tue, 3 May 2011 11:25:13 +0000 Subject: add hg and python --- sys/src/cmd/python/Doc/lib/libcgihttp.tex | 70 +++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 sys/src/cmd/python/Doc/lib/libcgihttp.tex (limited to 'sys/src/cmd/python/Doc/lib/libcgihttp.tex') diff --git a/sys/src/cmd/python/Doc/lib/libcgihttp.tex b/sys/src/cmd/python/Doc/lib/libcgihttp.tex new file mode 100644 index 000000000..df0728e3f --- /dev/null +++ b/sys/src/cmd/python/Doc/lib/libcgihttp.tex @@ -0,0 +1,70 @@ +\section{\module{CGIHTTPServer} --- + CGI-capable HTTP request handler} + + +\declaremodule{standard}{CGIHTTPServer} +\sectionauthor{Moshe Zadka}{moshez@zadka.site.co.il} +\modulesynopsis{This module provides a request handler for HTTP servers + which can run CGI scripts.} + + +The \module{CGIHTTPServer} module defines a request-handler class, +interface compatible with +\class{BaseHTTPServer.BaseHTTPRequestHandler} and inherits behavior +from \class{SimpleHTTPServer.SimpleHTTPRequestHandler} but can also +run CGI scripts. + +\note{This module can run CGI scripts on \UNIX{} and Windows systems; +on Mac OS it will only be able to run Python scripts within the same +process as itself.} + +\note{CGI scripts run by the \class{CGIHTTPRequestHandler} class cannot execute +redirects (HTTP code 302), because code 200 (script output follows) +is sent prior to execution of the CGI script. This pre-empts the status +code.} + +The \module{CGIHTTPServer} module defines the following class: + +\begin{classdesc}{CGIHTTPRequestHandler}{request, client_address, server} +This class is used to serve either files or output of CGI scripts from +the current directory and below. Note that mapping HTTP hierarchic +structure to local directory structure is exactly as in +\class{SimpleHTTPServer.SimpleHTTPRequestHandler}. + +The class will however, run the CGI script, instead of serving it as a +file, if it guesses it to be a CGI script. Only directory-based CGI +are used --- the other common server configuration is to treat special +extensions as denoting CGI scripts. + +The \function{do_GET()} and \function{do_HEAD()} functions are +modified to run CGI scripts and serve the output, instead of serving +files, if the request leads to somewhere below the +\code{cgi_directories} path. +\end{classdesc} + +The \class{CGIHTTPRequestHandler} defines the following data member: + +\begin{memberdesc}{cgi_directories} +This defaults to \code{['/cgi-bin', '/htbin']} and describes +directories to treat as containing CGI scripts. +\end{memberdesc} + +The \class{CGIHTTPRequestHandler} defines the following methods: + +\begin{methoddesc}{do_POST}{} +This method serves the \code{'POST'} request type, only allowed for +CGI scripts. Error 501, "Can only POST to CGI scripts", is output +when trying to POST to a non-CGI url. +\end{methoddesc} + +Note that CGI scripts will be run with UID of user nobody, for security +reasons. Problems with the CGI script will be translated to error 403. + +For example usage, see the implementation of the \function{test()} +function. + + +\begin{seealso} + \seemodule{BaseHTTPServer}{Base class implementation for Web server + and request handler.} +\end{seealso} -- cgit v1.2.3