Perl Webworking

Interaktive Mechanismen für Webseiten

Die Erstellung von Webseiten erfolgt im Wesentlichen durch die Sprache HTML, welche primär der
Dokumentengestaltung übernimmt. Die Grundsyntax und die Semantik von HTML werden vom
World Wide Web Consortium (W3C) in den HTML-Normen festgelegt.
Obwohl diese Normen durch die verschiedenen Browserhersteller oft erweitert werden, bleiben
die funktionelle Möglichkeiten von HTML auf denen einer statischen Oberfläche.

Interaktivität, wie z.B. die Verarbeitung (aber nicht die Ausgabe!) von Formularen obliegt
anderen Mechanismen, welche wir im Folgendem vorstellen werden.

Clientseitige Mechanismen

Clientseitige Mechanismen sind Programme, bzw. Skripten, welche auf dem Rechner desjenigen ausgeführt
werden, welcher eine Seite abruft, in der Aufrufe dieser Skripten getätigt werden. Der Webserver
auf dem die Seiten liegen, wird also nicht durch diese Skripten belastet. Allerdings sind dadurch die
meisten Anwendungen, die auf Datenbanken arbeiten, nicht möglich.

Folgende Tabelle zeigt die derzeitig üblichen Verfahren im Überblick:

JavaScript ActiveX Shockwave
Beschreibung JavaScript ist eine Programmiersprache, welche vom Browser des Betrachters
interpretiert wird und so auf die Darstellung des aktuellen Dokumentes Einfluß
nimmt. JavaScript ist eine Objectorientierte Sprache, die sich bereits zu einem
Standard auf Webseiten gemausert hat.
ActiveX wurde von Microsoft als Alternative zu JavaScript auf den Markt gebracht.
ActiveX kann auf die OLE von Windows zugreifen und so direkt auf alle Programme des
Rechners einwirken. Die Sicherheit gegen unbefugte Zugriffe erfolgt im wesentlichen nur
durch die Microsoft-Lizenz für diese Skripten.
Shockwave hat sich im professionellen Webdesign durchgesetzt zur Durchführung von
komplexeren grafischen Interaktionen auf der Webseiten. Es benötigt jedoch ein Plugin.
Da es jedoch auch Programme gibt, die im wesentlichen nur aus diesem Plugin bestehen
sind mit Shockwave auch bewegte Präsentationen ohne Webzugriff und Browser
möglich.
System-Anforderungen Browser der zweiten Generation Nur Microsoft-Browser Browser mit entspr. Plugins
Kosten kostenlos kostenlos Abhängig von Software. Professionelle Software im unteren Tausenderbereich.
Verbreitung
(Wieviele Benutzer können und würden diese Techniken darstellen)
hoch gering gering-mittel, wird aber zur Zeit von diversen publikumsreichen
Webseiten gefördert und eingesetzt.
Programmier-Aufwand gering mittel mittel
Anzahl verfügbarer Resourcen hoch gering gering, zum Teil nur kommerziell
Sicherheit für den Benutzer mittel sehr gering

Microsoft hat im Sommer 1996 – 2002 begonnen, sich aus der Technologie zurückzuziehen, da
ActiveX konzeptionell unsicher ist.

mittel-hoch

Serverseitige Mechanismen

Serverseitige Mechanismen sind Funktionen und Programme, die vom Webserver ausgeführt werden
und dessen Ausgaben an den Gast der Webseite weitergeleitet werden. Im Gegensatz zu clientseitigen
Mechanismen obliegt es allein dem Server alle nötigen Zugriffe zu machen, so daß dieser
auch die Last trägt.

Serverseitige Mechanismen bieten aber den Vorteil, daß die Datenhaltung zentral ist und
die Ausgaben unabhängig von dem verwendeten Browser sind. Eine Kombination von Serverseitigen
mit Clientseitigen Mechanismen ist zudem möglich und üblich. (Zum Beispiel beim Einsatz von
komplexen Online-Umfragen).

Obwohl sich inzwischen nur mehr 4 Servertypen durchgesetzt haben (Apache, Novell, Microsoft IIE,
Netscape), ist die Zahl der verfügbaren Mechanismen um einiges größer.
Aber auch hier sind schon Trends feststellbar. Die folgende Tabelle zeigt die derzeit am häufigsten
verwendeten Techniken und Standards für die clientseitige Ausführung:

CGI SSI ASP PHP
Beschreibung Offenes Standard für die Übergabe von Daten an den Webserver, die dieser
an das entsprechende Programm weiterleitet. CGI (= Common Gateway Interface) ist nicht auf eine
Sprache festgelegt und ist somit weitgehend plattformunabhängig.
SSI (= Server Side Includes) werden vom Apache-Server zur Verfügung gestellt
und erlauben es dem Benutzer einen kleinen Satz an dynamischen Informationen weiterzugeben, wie
z.B. die Environments des Webservers oder die Systemzeiten.
Komplexe Programmierung ist nicht möglich.
ASP ist von Microsoft und verlangt entweder dessen Server oder
entsprechende Erweiterungen für andere Server. ASP verfügt über einen festgelegten
Sprachumfang, der sich an dem von ActiveX anlehnt.
Ähnlich wie ASP verfügt PHP über einen festgelegten Sprachumfang.
Im Gegensatz dazu ist PHP plattformunabhängiger als ASP und arbeitet ohne Probleme unter
gänge Server und Betriebssysteme.
Anforderungen
(Neben den Webserver)
Interpreter oder Compiler für das jeweils benutzte Programm. Ggf. Server-Module. (Linux: mod_perl!) keine ASP Erweiterungen und Module PHP Erweiterungen und Module. Wenn die Module Defaultmässig im Speicher bleiben
wird mehr RAM benötigt.
Speed
(Abhängigkeit von der Serverhardware vorrausgesetzt)
Mittel bis Hoch: Abhängig von der verwendeten Sprache.
Mit Server-Modulen (mod_cgi) sind Interpretierte Sprachen genauso schnell wie PHP.
Compilierte Programme können schneller sein.
Nur durch den Webserver bestimmt. Mittel: Stark abhängig vom verwendeten System. Mittel-Hoch: Abhängig davon welche Server-Module installiert sind.
In der Regel werden Module mitgeliefert, die bewirken, daß PHP-Skripten
nach der Ausführung im Speicher bleiben. PHP belastet die CPU mehr als CGI, wobei
aber auch dies durch entsprechende Module ‚abgeschaltet‘ werden kann.
Kosten kostenlos kostenlos Abhängig vom verwendeten Server kostenlos
Verbreitung hoch mittel, wird oft in Kombination benutzt gering-mittel mittel, steigt aber an, da es gerade „in“ ist
Aufwand abhängig vom Programmierer und der Sprache unwesentlich abhängig vom Programmierer abhängig vom Programmierer
Anzahl verfügbarer Resourcen sehr hoch mittel gering, zum großen Teil nur kommerziell mittel-hoch
Sicherheit nur abhängig vom Programmierer nur abhängig vom Programmierer

(Es können nur Informationen weitergegeben werden,
die ein Hacker allerdings an anderere Stelle nutzen könnte)

gering-mittel
(Alle 3 Wochen ein Exploid…)
abhängig vom Programmierer und in alten Versionen mittel