Dynamische Webseiten vs. Dynamisches HTML

Im Modul Clientseitige Scripts in Webseiten haben wir bereits die Bedeutung von Dynamischem HTML kennengelernt, nämlich die Gestaltung von HTML-Seiten mit dynamischem Verhalten, welches durch clientseitige Scripts (= Scripts, die am Client ausgeführt werden) wie z. B. JavaScript erreicht wird. Im Unterschied dazu werden echte dynamische Webseiten bei jedem Aufruf am Server erstellt und an den Client geschickt. Die Ausführung von Code liegt in diesem Fall beim Server, der Client bekommt oft eine statische HTML-Seite.

CGI/Perl

Eine ältere Variante, dynamische Webseiten zur ermöglichen ist unter dem Namen CGI/Perl bekannt und auch noch sehr verbreitet. CGI (Common Gateway Interface) bietet die Möglichkeit, Programme auf dem Webserver von HTML-Seiten aus aufzurufen und stellt damit eine Schnittstelle dar, über die das Webserver-Programm (z. B. Apache) Daten an andere Programme, die auf demselben Server laufen, zu übergeben. Natürlich muss dazu die Webserver-Software CGI unterstützen.

Diese Datenübergabe funktioniert in beide Richtungen: Eine HTML-Seite schickt Daten an den Server mit (vgl. das Modul Variablen in Webseiten), dieser übergibt die Daten über die CGI-Schnittstelle an ein anderes Programm auf dem Server. Dort werden die Daten verarbeitet (Berechnungen angestellt, Datenbankeinträge gemacht, etc.); das Ergebnis wird in Form von (dynamisch erzeugtem) HTML-Code (oder auch eine Fehlermeldung) über die CGI-Schnittstelle an den Webserver zurückgegeben, welcher diesen Code an den Client weiterleitet. Die Scipts oder Programme müssen am Server in einem eigenen Verzeichnis abgelegt werden. Perl-Seiten haben üblicherweise die Endung ".pl".

Solche (aus Sicht der Webserver-Software externe) Programme können Interpreter für beliebige Programmiersprachen sein oder auch kompilierter Code (.EXE-Dateien). Sehr gebräuchlich sind Perl-Interpreter. Deshalb ist diese Technologie meist unter der Bezeichnung "CGI/Perl" zu finden. Durch die Beschränkung der Kommunikation des Webservers nach außen auf die definierte CGI-Schnittstelle ist die Sicherheit hoch. Der Nachteil liegt in der Verarbeitungsgeschwindigkeit.

ASP

Eine andere serverseitige Technologie stellen Active Server Pages (ASP) dar. Auch hier wird nach einem Request vom Client auf dem Server ein Programm ausgeführt, das HTML-Code dynamisch erzeugt, und das der Server dann an den Client weiterleitet. Der Unterschied zu CGI besteht darin, dass der Code-Interpreter als Modul in der Webserver-Software integriert ist. D. h. bei der Ausführung des Code kann direkt auf Servervariablen (und damit auch auf Variablen, die eine HTML-Seite an den Server mitgeschickt hat) zugegriffen werden. In der Regel laufen ASP-Seiten schneller als CGI/Perl-Scripts.

ASP wurde von Microsoft entwickelt und läuft deshalb auch hauptsächlich auf dem Webserver von Microsoft, dem Internet Information Server (IIS), jedoch existieren auch schon Versionen für den Apache Webserver. ASP ist - im Gegensatz zu PHP - keine eigene Programmiersprache, sondern bezeichnet nur die bereitgestellte Umgebung. ("Microsoft-lastige") Scriptsprachen, die für ASP-Seiten zum Einsatz kommen sind VBScript oder JScript. ASP-Seiten können am Webserver an beliebiger Stelle (wie HTML-Seiten) stehen und haben die Endung ".asp".

PHP

Vom Konzept her mit ASP zu vergleichen ist PHP (Hypertext Preprocessor). Jedoch ist PHP auch eine eigene Scriptsprache, die speziell für die Webprogrammierung entwickelt wurde. Einige Aufgaben der Webprogrammierung (beispielsweise das dynamische Generieren von PDF-Dokumenten) lassen sich daher mit PHP recht einfach lösen.

PHP-Interpreter findet man oft in Zusammenhang mit dem Apache-Webserver auf einer Linux-Umgebung. PHP ist (ebenso wie Perl) Open Source, d. h. der Quellcode ist frei verfügbar und ohne Lizenz nutzbar. Ebenfalls Open Source und oft gemeinsam mit PHP unter Apache verwendet wird die Datenbank MySQL. Man spricht dann von LAMP- (Linux-Apache-MySQL-PHP) bzw. WAMP-Systemen (Windows-Apache-MySQL-PHP).

Eine ausführliche Beschreibung der Scriptsprache PHP finden Sie auf den Seiten von SELFPHP.

Module, die für die Durchführung vorausgesetzt werden