Zum Inhalt springen

Web Server Gateway Interface

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 11. Februar 2026 um 22:51 Uhr durch imported>BrunoBoehmler (Einleitung: Text erweitert, Einzelnachweise hinzugefügt).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Das Web Server Gateway Interface (WSGI, ausgesprochen: Whiskey<ref>Michele Simionato: An Introduction to Web Programming with WSGI. In: EuroPython. 11. August 2007. University of Pittsburgh, Department of Physics and Astronomy. Auf Pitt.edu, abgerufen am 11. Februar 2026 (englisch).</ref> oder Whiz-gee<ref>Kevin Goldberg: An Introduction to Python WSGI Servers: Part 1. In: Blog › Observability. 9. Mai 2016. Auf Splunk.com, abgerufen am 11. Februar 2026 (englisch).</ref>) ist eine Spezifikation für die Programmiersprache Python, die eine Schnittstelle zwischen Webservern und Webframeworks bzw. Web Application Servern festlegt, um die Portabilität von Webanwendungen auf unterschiedlichen Webservern zu fördern.

Details

Die eigentliche Schnittstelle besteht auf Anwendungsseite aus einem aufrufbaren Objekt (app im Beispiel). Dieses erhält als Parameter die Umgebungsvariablen (environ) und ein Funktionsobjekt (start_response) und muss ein iterierbares Objekt zurückgeben. Die Umgebungsvariablen werden als assoziatives Array übergeben. Das Funktionsobjekt dient dazu, die HTTP-Header auszugeben; es wird von der Server-Seite aufgerufen, bevor der Rückgabewert der Funktion an den Client gesendet wird.

Beispiel: <syntaxhighlight lang="python"> def app(environ, start_response):

   start_response('200 OK', [('content-type', 'text/plain')])
   return [b'Hello world!']

</syntaxhighlight>

Hintergrund

Die verschiedenen für Python entwickelten Web Application Frameworks und Web Application Server benötigten ursprünglich bestimmte Webserver, so dass Frameworks und Webserver nicht unabhängig voneinander gewählt werden konnten.

Das Python Web Server Gateway Interface als Schnittstelle (Middleware) zwischen Webserver und Framework schließt diese Lücke und erhöht die Portabilität. Der erste Entwurf des zugehörigen Python Enhancement Proposal 333 stammt vom 7. Dezember 2003.

Anwendung

Bisher sind nur wenige Websites für eine extensive Nutzung von WSGI bekannt geworden.<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig mod_wsgi Usage Statistics.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 1. August 2020.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref><ref>Usage statistics of server-side programming languages for websites. In: Technologies › Server-side Languages. Q-Success, 2026. Auf W3techs.com, abgerufen am 11. Februar 2026 (englisch).</ref> Verwendet wird WSGI derzeit vor allem

Beide Varianten können als eigenständiger Systemdienst (daemon) getrennt vom Webserver arbeiten und bieten so neben bedingten Sicherheits- und Performance-Vorteilen auch komfortable Möglichkeiten zur Skalierung und unterbrechungsfreie Updates.<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig uwsgi Zerg Mode.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 27. September 2013.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref><ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig mod_wsgi Daemon Delegation.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 27. September 2013.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref>

WSGI-kompatible Software

Weblinks

Einzelnachweise

<references />

<templatestyles src="Erweiterte Navigationsleiste/styles legacy.css" />Vorlage:Klappleiste/Anfang

Protokolle

CGI | SCGI | FastCGI | AJP

APIs

C NSAPI | C ASAPI | C ISAPI | Jakarta Servlet | ASP.NET | Python WSGI | Ruby Rack | JavaScript JSGI | PSGI | Lua WSAPI 

Apache-Module

mod_jk | mod_lisp | mod_parrot | mod_perl | mod_php | mod_python | mod_wsgi | mod_ruby | Phusion Passenger 

Web APIs

WSDL | XML-RPC | SOAP | REST 

Vorlage:Klappleiste/Ende