Zurück |
Übersicht |
Kapitel 6 : Alternativen zu CGI
fastCGI
Dieses Modul verhält sich weitgehend wie CGI. Nur wird das Script einmal gestartet
Unterschiede zu CGI
Anders als CGI wird eine dauerhafte Verbindung zwischen dem Server und dem fastCGI-Script aufgebaut.
Über ein Siganal wird angezeigt, dass eine neue Anforderung vom Client gekommen ist.
CGI::Fast
Eines der Module mit denen das fastCGI Interface implemntiert wurde ist CGI::Fast
In dem Modul ist das auslösende Modul so gelöst,
das das erzeugen einer neuen CGI Objektinstanz solnage hinausgezögert wird,
bis eine Anforderung vom Client kommt.
Ab dem Punkt verhält es sich wie ein normales CGI-Objekt, mit allen Methoden welche man von CGI kennt.
An einem Beispiel:
Scriptname: param3.pl
#!/usr/bin/perl
# strict und warnings sind Pflicht in jedem ordentlichen Perlscript.
use strict;
use warnings;
# Laden des CGI::fast Modules
use CGI::Fast;
# ein zähler zum zu zeigen,
# dass immer das selbe Script aufgerufen wird
my $COUNTER = 0;
# diese Schleife beendet sich erst,
# wenn die Kommunikation mit dem Server unterbrochen wird
# Ansonsten wird bei jedem Aufruf ein neues CGI::Fast Objekt erzeugt
while (my $cgi=CGI::Fast->new())
{
print $cgi->header();
print $cgi->start_html("Fast CGI Rocks");
print
$cgi->h1("Fast CGI Rocks"),
$cgi->p(
"Invocation number ",$cgi->b($COUNTER++),
" PID: ",$cgi->b($$),".",
),
print $cgi->end_html;
}
FCGI
Das Modul FCGI ist minimalistischer und bietet eine Minimale Schinttstelle zum
FastCGI? Interface.
Das ist nützlich wenn man selber ein CGI-farmewor schreiben will oder anforderungen hat die von normalen CGIs abweichen.
Die Kontrolle über das was und wann zum Client gesendet wird ist größer, das macht aber auch die Scripte komplexer.
modperl
Dies ist ein Modul für Apache. (wobei es auch Portierungen zu anderen HTTP-Servern gibt) Dabei wird der Perlinterpreter in Apache eingebunden.
Dadauch hat Perl Zugriff auf die internen Strukturen von Apache.
Das Script wird wie bei
FastCGI? nur einmal gestartet.
Zurück |
Übersicht |
--
ToPeGroe, 07 Okt 2011