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
Kommt wieder. Bin noch nicht ganz fertig mit dem umschreiben -- ArminRonacher
Ah, ok... Hab schon einen Scheck bekommen
Dann bin ich ja mal gespannt -- JensDiemer 2006-11-23 10:25:17
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...