Mod python

Last updated

mod_python is an Apache HTTP Server module that integrates the Python programming language with the server. It is intended to provide a Python language binding for the Apache HTTP Server.

Contents

When mod_python released it was one of the more efficient options for Python scripts compared to CGI as CGI requests require starting a new Python process to respond to each individual web request.[ citation needed ]

History

The initial implementation of mod_python was a port to Apache HTTP server of a project called NSAPy. NSAPy was written by Aaron Watters for the Netscape Enterprise Server and was used as an example in a chapter of the book Internet Programming with Python written by Aaron Watters, Guido van Rossum, and James Ahlstrom. [1] The first version of mod_python was released by Gregory Trubetskoy in 2000. In September 2002, mod_python was donated to the Apache Software Foundation and became part of the Apache HTTP Server project.

Since the development of Python's Web Server Gateway Interface from PEP 3333 in December 2003, interest in mod_python has largely moved to WSGI-compliant alternatives such as mod_wsgi. [2]

Development on the project eventually ceased due to inactivity of the primary contributors and in The Apache Software Foundation June 16, 2010 Board meeting, the Board unanimously passed a resolution terminating Apache Quetzalcoatl Project (umbrella project for mod_python). [3]

In September 2013, development of mod_python briefly resumed independent of the Apache Software Foundation [2] however it has been largely inactive since and no new releases were created. [4]

Related Research Articles

Apache HTTP Server Open-source web server software

The Apache HTTP Server, colloquially called Apache, is a free and open-source cross-platform web server software, released under the terms of Apache License 2.0. Apache is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation.

In computing, Common Gateway Interface (CGI) is an interface specification that enables web servers to execute an external program, typically to process user requests.

Apache Tomcat Java-based HTTP web server environment

Apache Tomcat is an open-source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and WebSocket technologies. Tomcat provides a "pure Java" HTTP web server environment in which Java code can run.

The Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

CherryPy is an object-oriented web application framework using the Python programming language. It is designed for rapid development of web applications by wrapping the HTTP protocol but stays at a low level and does not offer much more than what is defined in RFC 7231.

Django (web framework) Python web framework

Django is a Python-based free and open-source web framework that follows the model-template-views (MTV) architectural pattern. It is maintained by the Django Software Foundation (DSF), an American independent organization established as a 501(c)(3) non-profit.

mod_jk is an Apache module used to connect the Tomcat servlet container with web servers such as Apache, iPlanet, Sun ONE and even IIS using the Apache JServ Protocol.

The Simple Common Gateway Interface (SCGI) is a protocol for applications to interface with HTTP servers, as an alternative to the CGI protocol. It is similar to FastCGI but is designed to be easier to parse. Unlike CGI, it permits a long-running service process to continue serving requests, thus avoiding delays in responding to requests due to setup overhead.

LAMP (software bundle) Software bundle

LAMP is a very common example of a web service stack, named as an acronym of the names of its original four open-source components: the Linux operating system, the Apache HTTP Server, the MySQL relational database management system (RDBMS), and the PHP programming language. The LAMP components are largely interchangeable and not limited to the original selection. As a solution stack, LAMP is suitable for building dynamic web sites and web applications.

mod_ruby is a module that embeds the Ruby interpreter into the Apache web server to allow Ruby code to execute natively, faster than other CGI methods. Its drawback is that the characteristic sharing of classes among Apache processes is not safe for multiple applications.

Nginx, stylized as NGINX, nginx or NginX, is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. The software was created by Igor Sysoev and publicly released in 2004. Nginx is free and open-source software, released under the terms of the 2-clause BSD license. A large fraction of web servers use NGINX, often as a load balancer.

Python Paste, often simply called paste, is a set of utilities for web development in Python. Paste has been described as "a framework for web frameworks".

mod_wsgi is an Apache HTTP Server module by Graham Dumpleton that provides a WSGI compliant interface for hosting Python based web applications under Apache. As of version 4.5.3, mod_wsgi supports Python 2 and 3.

Kepler is a free software project written in Lua that provides a portable, extensible website development platform. Current stable release is Kepler 1.1.1, for Lua 5.1. Kepler works on Windows and most variants of Unix.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

mod_lisp is an extension module for the Apache HTTP Server. It enables Apache to interface with application servers written in Lisp, making it possible to dynamically generate web pages and provide web applications with Lisp programs.

Plack (software)

Plack is a Perl web application programming framework inspired by Rack for Ruby and WSGI for Python, and it is the project behind the PSGI specification used by other frameworks such as Catalyst and Dancer. Plack allows for testing of Perl web applications without a live web server.

FastCGI is a binary protocol for interfacing interactive programs with a web server. It is a variation on the earlier Common Gateway Interface (CGI). FastCGI's main aim is to reduce the overhead related to interfacing between web server and CGI programs, allowing a server to handle more web page requests per unit of time.

Gunicorn

The Gunicorn "Green Unicorn" is a Python Web Server Gateway Interface (WSGI) HTTP server. It is a pre-fork worker model, ported from Ruby's Unicorn project. The Gunicorn server is broadly compatible with a number of web frameworks, simply implemented, light on server resources and fairly fast.

References

  1. "History". 29 January 2007. Archived from the original on 1 June 2013.CS1 maint: unfit URL (link)
  2. 1 2 Trubetskoy, Gregory (2013-08-02). "Hacking on mod_python (again)". Gregory Trubetskoy. Retrieved 2021-03-30.
  3. "Meeting minutes". www.apache.org. June 16, 2010. Retrieved 2021-03-30.
  4. "grisha/mod_python". GitHub. Retrieved 2021-03-30.