42 lines
1.6 KiB
TeX
42 lines
1.6 KiB
TeX
\section{CGI server}\label{sec:cgi-server}
|
|
%
|
|
\begin{description}
|
|
\item[Used files:] cgi-server.scm
|
|
\item[Name of the package:] cgi-server
|
|
\end{description}
|
|
%
|
|
\subsection{Procedures}
|
|
|
|
\begin{defundesc}{cgi-handler}{bin-dir \ovar{cgi-bin-dir}}{path-handler}
|
|
Returns a path handler (see \ref{httpd:path-handlers} for details
|
|
about path handlers) for cgi-scripts located in
|
|
\semvar{bin-dir}. \semvar{cgi-bin-dir} specifies the value of the
|
|
\ex{PATH} variable of the environment the cgi-scripts run in. It defaults
|
|
to
|
|
``\ex{/bin:\ob{}/usr/bin:\ob{}/usr/ucb:\ob{}/usr/bsd:\ob{}/usr/local/bin}''
|
|
but is overwritten by the current \ex{PATH} environment variable at
|
|
the time \ex{cgi-handler} ist called. The cgi-scripts are called as
|
|
specified by CGI/1.1\footnote{see
|
|
\ex{http://hoohoo.ncsa.uiuc.edu/cgi/interface.html} for a sort of
|
|
specification.}.
|
|
|
|
\begin{itemize}
|
|
\item Various environment variables are set (like
|
|
\ex{QUERY\_STRING} or \ex{REMOTE\_HOST}).
|
|
\item ISINDEX queries get their arguments as command line arguments.
|
|
\item Scripts are handled differently according to their name:
|
|
|
|
\begin{itemize}
|
|
|
|
\item If the name of the script starts with `\ex{nph-}', its reply
|
|
is read, the RFC~822-fields like ``Content-Type'' and ``Status''
|
|
are parsed and the client is sent back a real HTTP reply,
|
|
containing the rest of the script's output.
|
|
|
|
\item If the name of the script doesn't start with `\ex{nph-}',
|
|
its output is sent back to the client directly. If its return code
|
|
is not zero, an error message is generated.
|
|
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{defundesc} |