summaryrefslogtreecommitdiff
path: root/sys/src/cmd/python/Doc/lib/libcgihttp.tex
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
committercinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
commit458120dd40db6b4df55a4e96b650e16798ef06a0 (patch)
tree8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Doc/lib/libcgihttp.tex
parent3a742c699f6806c1145aea5149bf15de15a0afd7 (diff)
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Doc/lib/libcgihttp.tex')
-rw-r--r--sys/src/cmd/python/Doc/lib/libcgihttp.tex70
1 files changed, 70 insertions, 0 deletions
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}