Diskussion zu WSGI

Wo ist der "Aufbau" hin?

Das sie Seite neu geschrieben wurde ist ja nett. Aber warum wurde der "Grobe Aufbau" einfach komplett gestrichen??? Ich denke gerade dadurch wird schnell einiges klarer, was WSGI ist... -- JensDiemer 2006-11-22 10:56:31

Original

Datenfluß eines Responses von der Web-Applikation zum Benutzer, der den Request vorher gesendet hat.

WebApp -> WSGI -> Web-Server -> Benutzer

WSGI ist nur eine definierte Zwischenschicht (API/Schnittstelle) zwischen der eigentlichen Web-Applikation und dem verwendeten Server. Somit ist dort eine Trennung und man kann den Server einfach auswechseln (z.B. Apache durch CherryPy) ohne die Web-Applikation zu ändern.

etwas Ausführlicher:

WebApp -> WSGI-CGI-Handler -> WSGI-CGI-Wrapper -> Apache-CGI-Gateway -> Benutzer

CGI-Wrapper wird hin und wieder (irrtümlich) auch CGI-Server genannt :)

Hierbei läuft die Web-Applikation also mit CGI. Den Handler und Wrapper kann man ganz einfach tauschen, sodas die Web-Applikation auch mit fastCGI/mod_python und Co. funktionieren. Das ist der große Vorteil von WSGI.

Dewsegen ist es sehr Sinnvoll eine Web-Applikation als WSGI Applikation zu schreiben und nicht mit dem einfachsten CGI Anzufangen. Denn mit einem CGI Skript hat man sich den Weg zu fastCGI und Co verbaut. Man ist nicht flexibel sondern an CGI gebunden.

Wenn man also statt CGI, z.B. fastCGI einsetzten will und statt Apache z.B. CherryPy, sieht die ganze sache dann so aus:

WebApp -> WSGI-fastCGI-Handler -> WSGI-fastCGI-Wrapper -> CherryPy -> Benutzer

Wenn man z.B. colubrid einsetzt, steckt das quasi zwischen deiner WebApp und dem CGI-Handler:

WebApp -> colubrid -> CGI-Handler -> CGI-Wrapper -> Apache-CGI-Gateway -> Benutzer

colubrid ist quasi ein mini WSGI Implementierung. Als weitere Zwischenschicht erleichtert es einige wichtige Aufgaben der Programmierung. Anders als große Frameworks, die django/Trubogears hat man aber alle Freiheiten seine Web-App zu gestalten, da colubrid nur das nötigste vorgibt und die WebApp. WSGI konform zu gestalten...

Diskussion/WSGI (last edited 2009-06-17 16:14:31 by localhost)