Mod python
|
- The title of this article is incorrect because of technical limitations. The correct title is mod_python.
mod_python is an Apache HTTP Server module that integrates the Python programming language into the Apache server. It is intended to replace Common Gateway Interface (CGI) as a method of executing Python scripts on a web server. The promised benefits are faster execution speed and maintaining data over multiple sessions.
Contents |
Benefits
Ordinary CGI execution starts a new process every time a connection is made to a script on the server. This works well in low to medium traffic sites, but does not scale well when used on a high traffic site. There are methods of enhancing the performance of CGI, such as FastCGI, but it is often easier to use a specialized module to embed the desired language into the web server itself. This is exactly what mod_python is designed to do. Since the process is not terminated after the script execution like CGI, persistent data can be stored, such as database connections. This may reduce script execution overhead.
Since mod_python modules are integrated with the web server, they can do almost anything an Apache module written in C can do: implement protocols besides HTTP, filter the request and response, determine a document's content type, etc.
Another advantage to mod_python is that it can talk directly Apache's core system, and interface as well as actually control the heart of Apache. This is done by handlers that the programmer specificies in the Apache configuration file, and every client request directed at that specific directory will not be processed by Apache, rather by mod_python and a "Main" function that handles all requests.
Disadvantages
Since your scripts will be running from within the server process, they execute with the full permissions of the web server. Normally this is not a problem, but if not carefully managed, modules such as mod_python can cause security breaches. This problem is shared by all programming languages embedded into the server, not just mod_python.
History
First version of mod_python was released by Gregory Trubetskoy in 2000. In September of 2002 mod_python was donated to the Apache Software Foundation and became part of the Apache HTTP Server project.
See also
External Links
- Official mod_python website (http://modpython.org/)