Thread Subroutine als Parameter: Syntax Verständnisproblem (11 answers)
Opened by Perl007 at 2018-06-28 09:40

haj
 2018-06-29 08:49
#188586 #188586
User since
2015-01-07
527 Artikel
BenutzerIn

user image
2018-06-29T05:11:23 rosti
Was heißt hier, die Notwendigkeit von CGI entfällt im Falle eines eigenen Webservers?

CGI/1.1 ist doch transparent! D.h., ein dem Webserver nachgelagerter Perlprozess bekommt doch sowieso sämtliche Daten in %ENV durchgereicht und kann aus STDIN lesen sowie auf STDOUT schreiben. Wozu also auch den Webserver in Perl implementieren?

Der Webserver bekommt bei einem Request eine Bytewurst aus dem Internet, die zur Verarbeitung durch eine Perl-Anwendung in eine geeignete Datenstruktur gebracht werden muss. Die Darreichungsform über Umgebungsvariablen anhand der CGI-Spezifikation ist ziemlich holprig. Der Webserver kann genauso gut über ein API mit der Anwendung kommunizieren. Das gibt's schon lange mit Wikipedia:mod_perl und Wikipedia:FastCGI, und inzwischen auch über Schnittstellenspezifikationen wie Wikipedia:WSGI für Python oder eben Wikipedia:PSGI für Perl. Für Apache gibt es die passenden Erweiterungen Wikipedia:mod_wsgi und mod_psgi. In all diesen Fällen ist CGI nicht erforderlich, es gibt allerdings entsprechende "Kompatibilitätsschichten" für CGI-Programme.

Wenn der Webserver in Perl geschrieben ist, geht die Umsetzung ins API noch ein bisschen einfacher, da wäre CGI nur noch ein Klotz am Bein.

2018-06-29T05:11:23 rosti
Zumal sich beliebige Webseiten um Webservices erweitern lassen. Auf meinen Domänen findest Du massenhaft solche Beispiele und das läuft alles über Apache.

MfG

Das ist völlig klar, Apache und CGI funktionieren weiterhin. Warum sollten sie auch nicht? In der Frage ging es aber um Mojolicious, und um Mojolicious-Anwendungen zu entwickeln, muss man weder CGI noch Apache kennen.

View full thread Subroutine als Parameter: Syntax Verständnisproblem