diff --git a/Doc/lib/libcgihttp.tex b/Doc/lib/libcgihttp.tex index 3381c64e4a0..df0728e3f18 100644 --- a/Doc/lib/libcgihttp.tex +++ b/Doc/lib/libcgihttp.tex @@ -18,6 +18,11 @@ run CGI scripts. 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} diff --git a/Lib/CGIHTTPServer.py b/Lib/CGIHTTPServer.py index 47a0e2c37a6..7a5c8190d82 100644 --- a/Lib/CGIHTTPServer.py +++ b/Lib/CGIHTTPServer.py @@ -14,6 +14,8 @@ requests are executed sychronously. SECURITY WARNING: DON'T USE THIS CODE UNLESS YOU ARE INSIDE A FIREWALL -- it may execute arbitrary Python code or external programs. +Note that status code 200 is sent prior to execution of a CGI script, so +scripts cannot send other status codes such as 302 (redirect). """