Web Server Gateway Interface
Web Server Gateway Interface (WSGI) is een low-level interface tussen webservers en webapplicatie-frameworks geschreven in de programmeertaal Python. WSGI definieert een standaard om portable webapplicaties en webapplicatie-frameworks te ontwikkelen.
De specificatie van WSGI is te vinden in Python Enhancement Proposal (PEP) 333.
Overzicht
Web Server Gateway Interface bestaat uit twee onderdelen: de "server" ("gateway") en de "client" ("framework"). De client dient een aanroepbaar object (zoals een functie of methode) aan te bieden aan de server. De server roept dit object aan en krijgt vervolgens een iterateerbaar object terug met strings. Deze data kan vervolgens verstuurd worden door de server naar de eindgebruiker.
Het is ook mogelijk om middleware te ontwikkelen op basis van deze specificatie: men dient dan beide aspecten te implementeren zodat de software kan communiceren met zowel een webserver als een webapplicatie-framework.
Geschiedenis
Voorheen waren webapplicaties en frameworks specifiek ontwikkeld voor een bepaalde technologie, zoals CGI of mod_python, waardoor deze software alleen daarop kon draaien. De keuze voor een bepaalde webapplicatie-framework limiteerde ook de keuze voor welke webserver gebruikt moest worden en vice versa. WSGI is ontwikkeld om deze problematiek op te lossen.
In december 2003 werd Python Enhancement Proposal (PEP) 333 gepubliceerd met de specificatie van WSGI.
Ondersteuning
WSGI wordt ondersteund door allerlei webapplicatie-frameworks, waaronder CherryPy[1], Django[2], TurboGears[3], Pylons[4] en Google App Engine[5].
Python 3.0 wordt ondersteund door mod_wsgi[6], een module volgens de WSGI-standaard voor Apache.
Externe links
- (en) Web Server Gateway Interface, PEP 333
- ↑ (en) WSGI, CherryPy (gearchiveerd)
- ↑ (en) Django without mod_python, and WSGI support, Django weblog, Adrian Holovaty, 18 juli 2005
- ↑ (en) How to use TurboGears with mod_wsgi, mod_wsgi, Google Code
- ↑ (en) WSGI support, PylonsHQ (gearchiveerd)
- ↑ (en) Running Django on Google App Engine, Damon Kohler, april 2008, Google Code
- ↑ (en) Changes in mod_wsgi version 3.0, mod_wsgi, Google Code