CGI:
- Der Client stellt einen Request an einen Web-Server.
- Der Web-Server nimmt den Request entgegen und merkt, dass eine Behandlung via CGI nötig ist.
- Das CGI-Modul des Webservers startet einen entsprechenen Interpreter (Perl, PHP, Python usw.).
- Der Webserver leitet den Request an den entsprechenden Interpreter weiter.
- Der Interpreter verarbeitet den Request und gibt eine Antwort zurück; der Prozess wird sogleich beendet.
- Der Webserver nimmt die Antwort entgegen und leitet sie an den Client weiter.
- Der FastCGI-Prozess hält eine Reihe an Interpreter-Prozessen vor.
- Der Client stellt einen Request an einen Web-Server.
- Der Web-Server nimmt den Request entgegen und merkt, dass eine Behandlung via CGI nötig ist.
- Der Request wird an die FastCGI-Runtime weitergeleitet, welcher ihn durch einen Prozess im Pool behandeln lässt.
- Der jeweilige Prozess verarbeitet den Request, gibt die Antwort zurück und läut weiter.
- Der Webserver nimmt die Antwort entgegen und leitet sie an den Client weiter.
Angenommen, ich möchte das als Sequenzdiagramm modellieren: Welche Akteure soll ich da nehmen? Client, Web-Server, CGI-Modul bzw. FastCGI-Modul und Interpreter-Prozess(e)?
Ganz konkret soll es um Apache, PHP und PHP-FPM gehen.
EDIT I: Vielleicht wäre der Thread besser im Web- und Mailserver-Unterforum aufgehoben
EDIT II: Ich habe es mal mit UML-Sequenzdiagrammen versucht.
CGI:
FastCGI:
Die Lebensbalken sollen die Prozesslaufzeit veranschaulichen, nicht die Aktivität. (Mögen die UML-Götter mir gnädig sein.)