next up previous contents
Next: PHP Up: Erzeugung dynamischer Seiten Previous: Erzeugung dynamischer Seiten

CGIs / Perl

Das Common Gateway Interface ist die älteste Methode zum dynamischen Ausgeben von Daten auf Webservern. Hierbei werden externe Programme auf dem Server aufgerufen und deren Ausgabe direkt an den Client gesendet. Parameter können dabei entweder im Environment (GET) oder auf der Standardeingabe (POST) übergeben werden.

Heutzutage ist Perl eine typische Sprache um CGI Programme zu implementieren, da sie sehr mächtige Möglichkeiten zur einfachen Datenverwaltung und Stringmanipulation bietet, und selbstverständlich Schnittstellen zum System und auch zu Datenbanken bietet. Ein weiterer Vorteil ist, dass CGI mit nahezu jeder Webserversoftware möglich ist und sich auch Perl, obwohl ursprünglich aus der Unix-Welt stammend, heutzutage ebenso problemlos unter Windows und anderen Systemen betreiben lässt.

Diese Kombination, PERL und CGI, erscheint damit ideal für Managementaufgaben, und für einfache Aufgaben lassen sich damit tatsächlich sehr schnell Erfolge erzielen, hier ein Beispiel für ein Script das die aktuelle Uptime und Systemlast eines Unix-Hosts anzeigt:

#!/usr/bin/perl
$|=1;
$uptime=`/usr/bin/uptime`; chop($uptime);
$host=`/bin/uname -n`; chop($host);
print "Content-Type: text/vnd.wap.wml\n\n";
print '<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
 "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head>
<meta http-equiv="Cache-Control" content="no-cache"/>
</head>
<card id="uptime" title="Uptime">
<do type="prev"><prev/></do>
<p>
Uptime on Host ' . $host . '<br/>
' . $uptime . '<br/>
</p>
</card>
</wml>
';

Komplizierter wird es jedoch sobald nicht mehr einzelne unabhängige Anfragen gestellt werden, sondern eine Session aufgebaut werden soll z.B. um eine Authentifikation nur einmal durchführen zu müssen oder wenn Daten in mehreren Seiten nacheinander ausgegeben werden sollen, was aufgrund des WML-Deck Grössenlimits von 1400 Bytes oft nötig ist. Dies ist mit CGIs zwar möglich, man muss sich jedoch selbst um die ganzen Mechanismen wie die Vergabe und Speicherung einer Session ID kümmern.

Außerdem muss der gesamte WML Code durch print-Befehle oder ähnliches vom Script ausgegeben werden, was gerade für den nicht dynamischen Rahmencontent einer Seite unnötig umständlich ist.


next up previous contents
Next: PHP Up: Erzeugung dynamischer Seiten Previous: Erzeugung dynamischer Seiten
Copyright Munich Network Management Team