summaryrefslogtreecommitdiffstats
path: root/Doc/lib
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>1999-06-14 19:47:47 (GMT)
committerFred Drake <fdrake@acm.org>1999-06-14 19:47:47 (GMT)
commit21572fdcb60a6ab033a2dff66f871389ca1a89c1 (patch)
tree87e11d0cd3aecf1717d37d8a6affedfbb2616a37 /Doc/lib
parentd5258681e7838d8c0e16b9b3448ce4105340ea79 (diff)
downloadcpython-21572fdcb60a6ab033a2dff66f871389ca1a89c1.zip
cpython-21572fdcb60a6ab033a2dff66f871389ca1a89c1.tar.gz
cpython-21572fdcb60a6ab033a2dff66f871389ca1a89c1.tar.bz2
New sections from Moshe Zadka <moshez@math.huji.ac.il>.
These document CGIHTTPServer, SimpleHTTPServer, and linecache.
Diffstat (limited to 'Doc/lib')
-rw-r--r--Doc/lib/libcgihttp.tex61
-rw-r--r--Doc/lib/liblinecache.tex41
-rw-r--r--Doc/lib/libsimplehttp.tex71
3 files changed, 173 insertions, 0 deletions
diff --git a/Doc/lib/libcgihttp.tex b/Doc/lib/libcgihttp.tex
new file mode 100644
index 0000000..fd8e09b
--- /dev/null
+++ b/Doc/lib/libcgihttp.tex
@@ -0,0 +1,61 @@
+\section{\module{CGIHTTPServer} ---
+ A Do-Something Request Handler}
+
+
+\declaremodule{standard}{CGIHTTPServer}
+\sectionauthor{Moshe Zadka}{mzadka@geocities.com}
+\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 behaviour
+from \class{SimpleHTTPServer.SimpleHTTPRequestHandler} but can also
+run CGI scripts.
+
+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}
diff --git a/Doc/lib/liblinecache.tex b/Doc/lib/liblinecache.tex
new file mode 100644
index 0000000..868ec6d
--- /dev/null
+++ b/Doc/lib/liblinecache.tex
@@ -0,0 +1,41 @@
+\section{\module{linecache} ---
+ Treat files like lists of lines}
+
+\declaremodule{standard}{linecache}
+\sectionauthor{Moshe Zadka}{mzadka@geocities.com}
+\modulesynopsis{This module treats files like random-access lists of lines.}
+
+
+The \module{linecache} module allows one to get any line from any file,
+while attempting to optimize internally, using a cache, the common case
+where many lines are read from a file.
+
+The \module{linecache} module defines the following functions:
+
+\begin{funcdesc}{getline}{filename, lineno}
+Get line \var{lineno} from file named \var{filename}. This function
+will never throw an exception --- it will return \code{''} on errors.
+
+If a file named \var{filename} is not found, the function will look
+for it in the module search path.
+\end{funcdesc}
+
+\begin{funcdesc}{clearcache}{}
+Clear the cache. You might want to use this function if you know that
+you do not need to read lines from many of files you already read from
+using this module.
+\end{funcdesc}
+
+\begin{funcdesc}{checkcache}{}
+Check the cache is still valid. You might want to use this function if
+you suspect that files you read from using this module might have
+changed.
+\end{funcdesc}
+
+Example:
+
+\begin{verbatim}
+>>> import linecache
+>>> linecache.getline('/etc/passwd', 4)
+'sys:x:3:3:sys:/dev:/bin/sh\012'
+\end{verbatim}
diff --git a/Doc/lib/libsimplehttp.tex b/Doc/lib/libsimplehttp.tex
new file mode 100644
index 0000000..6de2106
--- /dev/null
+++ b/Doc/lib/libsimplehttp.tex
@@ -0,0 +1,71 @@
+\section{\module{SimpleHTTPServer} ---
+ A Do-Something Request Handler}
+
+\declaremodule{standard}{SimpleHTTPServer}
+\sectionauthor{Moshe Zadka}{mzadka@geocities.com}
+\modulesynopsis{This module provides a request handler for HTTP servers.}
+
+
+The \module{SimpleHTTPServer} module defines a request-handler class,
+interface compatible with \class{BaseHTTPServer.BaseHTTPRequestHandler}
+which serves files only from a base directory.
+
+The \module{SimpleHTTPServer} module defines the following class:
+
+\begin{classdesc}{SimpleHTTPRequestHandler}{request, client_address, server}
+This class is used, to serve files from current directory and below,
+directly mapping the directory structure to HTTP requests.
+
+A lot of the work is done by the base class
+\class{BaseHTTPServer.BaseHTTPRequestHandler}, such as parsing the
+request. This class implements the \function{do_GET()} and
+\function{do_HEAD()} functions.
+\end{classdesc}
+
+The \class{SimpleHTTPRequestHandler} defines the following member
+variables:
+
+\begin{memberdesc}{server_version}
+This will be \code{"SimpleHTTP/" + __version__}, where \code{__version__}
+is defined in the module.
+\end{memberdesc}
+
+\begin{memberdesc}{extensions_map}
+A dictionary mapping suffixes into MIME types. Default is signified
+by an empty string, and is considered to be \code{text/plain}.
+The mapping is used case-insensitively, and so should contain only
+lower-cased keys.
+\end{memberdesc}
+
+The \class{SimpleHTTPRequestHandler} defines the following methods:
+
+\begin{methoddesc}{do_HEAD}{}
+This method serves the \code{'HEAD'} request type: it sends the
+headers it would send for the equivalent \code{GET} request. See the
+\method{do_GET()} method for more complete explanation of the possible
+headers.
+\end{methoddesc}
+
+\begin{methoddesc}{do_GET}{}
+The request is mapped to a local file by interpreting the request as
+a path relative to the current working directory.
+
+If the request was mapped to a directory, a \code{403} respond is output,
+followed by the explanation \code{'Directory listing not supported'}.
+Any \exception{IOError} exception in opening the requested file, is mapped
+to a \code{404}, \code{'File not found'} error. Otherwise, the content
+type is guessed using the \var{extensions_map} variable.
+
+A \code{'Content-type:'} with the guessed content type is output, and
+then a blank line, signifying end of headers, and then the contents of
+the file. The file is always opened in binary mode.
+
+For example usage, see the implementation of the \function{test()}
+function.
+\end{methoddesc}
+
+
+\begin{seealso}
+ \seemodule{BaseHTTPServer}{Base class implementation for Web server
+ and request handler.}
+\end{seealso}