Das Web Server Gateway Interface (WSGI, ausgesprochen: Whiskey[1] oder Whiz-gee[2]) 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

Bearbeiten

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:

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

Hintergrund

Bearbeiten

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

Bearbeiten

Bisher sind nur wenige Websites für eine extensive Nutzung von WSGI bekannt geworden.[3][4] 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.[6][7]

WSGI-kompatible Software

Bearbeiten
Bearbeiten

Einzelnachweise

Bearbeiten
  1. 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).
  2. 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).
  3. mod_wsgi Usage Statistics. Abgerufen am 1. August 2020.
  4. 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).
  5. wiki.nginx.org
  6. uwsgi Zerg Mode. Abgerufen am 27. September 2013.
  7. mod_wsgi Daemon Delegation. Abgerufen am 27. September 2013.

📚 Artikel Terkait di Wikipedia

Webinterface

Scratch using ROS. Apress, 2023, ISBN 978-1-4842-9644-8, Kapitel 10: Web Interface and Autodocking, S. 497 (englisch).  Dagmar Sieberichs, Marcel Peters:

Common Gateway Interface

The Common Gateway Interface (CGI) Version 1.1. Oktober 2004 (englisch). Richard MacManus: 1993: CGI Scripts and Early Server-Side Web Programming. In:

Schnittstellenbeschreibungssprache

Interface Repository laden und können dynamisch von der Software abgefragt werden (Dynamic Invocation Interface bzw. Dynamic Skeleton Interface). Web

Programmierschnittstelle

Anwendungen), häufig nur kurz API genannt (von englisch application programming interface, wörtlich ‚Anwendungs­programmier­schnittstelle‘), ist ein Programmteil

WSGI

WSGI steht für: Web Server Gateway Interface, ein Standard-Interface zwischen Webservern und Web Application Frameworks bzw. Web Application Servern WS-GI

Benutzerschnittstelle

„Mensch-Maschine-Schnittstelle“ (MMS) oder englisch „Human Machine Interface“ (HMI) oder „Man Machine Interface“ (MMI) genannt und erlaubt dem Bediener unter Umständen

Elektronisches Gerichts- und Verwaltungspostfach

Deutschem Verwaltungsdiensteverzeichnis (DVDV) und Online Services Computer Interface-Web Services (OSCI) geeignet, die für die Rückmeldungen bei den Einwohnermeldeämtern

Internet

den USA, später weltweit. Diese Großrechner waren untereinander über Interface Message Processors verbunden, die die Netzwerkkommunikation mittels Paketvermittlung