1. Begriffserklärung

Um den Begriff "dynamische Webseite" zu verstehen, müssen wir die dynamische Webseite von der statischen Webseite abgrenzen. Wie im Modul Aufruf einer statischen Web-Seite beschrieben, zeichnet sich eine statische Web-Seite durch folgende Dinge aus:
  • Die statische Web-Seite wird auf Anfrage des Web-Browsers vom Web-Server an den Web-Browser durchgereicht und zwar so, wie sie ist, d.h. der Source* wird 1:1 aus dem Dateisystem des Web-Servers geliefert und der Web-Browser des Client stellt die Seite dann dar.
  • Bei einer statischen Web-Seite befinden sich sowohl das Layout (Form) als auch der Content (Inhalt) im geliefertem Source-Code. Änderungen an einer statischen Web-Seite werden durch einen (HTML)-Editor vorgenommen.
  • ScriptCode-Elemente (JavaScript, VBScript, etc.) sowie PlugIn-Elemente (Applets, Flash) werden vom Web-Browser am Client ausgeführt und dargestellt, nachdem sie ebenfalls vorher vom Web-Server durchgereicht wurden.

Vorhandensein von ScriptCode zwischen den HTML-Tags weist also noch nicht auf eine dynamische Web-Seite hin. Ausschlaggebend ist jedoch der Ort der Verarbeitung bzw. der Ausführung des ScriptCodes.

Dynamische Webseiten zeichnen sich dadurch aus, dass

  • der Webserver die Seite zuerst an einen Script-Prozessor (der zumeist ebenfalls am Web-Server liegt) weitergibt. Der Script-Prozessor verarbeitet nun die Webseite und gibt sie an den Web-Server zurück. Der Web-Server reicht nun die so entstandene (HTML)-Seite an den Web-Browser zurück.
  • Der Teil des Content, der anstelle der Code-Blöcke eingesetzt wird, entsteht also dynamisch zur Laufzeit der Webseite. Ein und die selbe Webseite kann daher im nächsten Moment schon einen ganz anderen Content beinhalten, ohne dass sich das Layout geändert hat.

Dynamic HTML ≠ dynamische Web-Seite
Unter einer dynamischen HTML versteht man im allgemeinen eine HTML-Seite die, angereichert durch JavaScript Code, so genannte dynamische Elemente enthält. Dies können z.B. Rollover-Effekte in Menüs, wie Farb- oder Bildertausch, oder auch animierte Ebenen sein. Alle diese Elemente werden jedoch am Client (zumeist durch Javascript) erzeugt, nachdem sie der Web-Server, genau wie den restlichen HTML-Code, direkt aus seinem Dateisystem an den Browser durchgereicht hat.

ScriptCode dynamischer Web-Seiten wird aber vom Web-Server vorher and den Scriptprozessor gesendet und dort verarbeitet. Diese Codeelemente werden vom Script-Prozessor mit dem Verarbeitungsergebnis ersetzt und dann an den Web-Server zurückgegeben. Dieses Verarbeitungsergebnis kann auch dynamische HTML sein, muss es aber nicht.

2. Verarbeitung dynamischer Webseiten durch den Web-Server

Video: Verarbeitung einer dynamischen Webseite (06:24, 2,4MB)

Eine dynamische Web-Seite wird vom Web-Browser des Clients analog zur statische Web-Seite via http GetRequest angefragt.

Der Webserver hält sich nun in der Konfiguration eine Liste mit Dateiendungen, die ihm bekannt gibt, welche Dateien er aus seinem Dateisystem direkt an den Client herausreichen soll und welche er an den Script-Prozessor weitergeben soll.

Beispiele für Dateiendungen sind

  • direkt an den Client weiterrechen: *.html, *.htm, *.txt
  • an einen Scriptprozessor übergeben: *.jsp, *.php. *.asp

Zu den genauen Erläuterungen der einzelnen Dateiendungen (insbesondere *.jsp, *.php. *.asp) verweise ich auf Kapitel 3.

Der Script-Prozessor nimmt die Datei und parst sie durch. HTML-Source bzw. clientseitig ausführbaren Code lässt er unberührt. Code-Elemente, die für ihn bestimmt sind, erkennt er an speziellen Tags. Diese führt er wie ein Programm aus und fügt die Ergebnisse an der vorgesehenen Stelle in die Webseite ein.

Dies kann nun ein Content sein, der aus Datenbankabfragen stammt, oder Ergebnisse komplexer Berechnungen. Nach Beenden der Verarbeitung gibt der ScriptProzessor die so neu entstandene Webseite an den Web-Server zurück und dieser reicht sie dann - analog zu statischen Webseiten - über das Internet an den Client weiter.

3. Beispiele und Anwendungen für dynamische Webseiten

Der große Vorteil dynamischer Webseiten ist die Trennung von Layout und Inhalt. Meist wird eine dynamische Webseite so gebaut, dass zuerst eine statische Vorlage mit einem Web-Editor erstellt wird. Dies kann z.B. Macromedia Dreamwaver, Adobe Go Live, oder ein einfacher Texteditor sein. Man erhält dann eine HTML-Seite, die auch ScriptCode enthalten kann, der clientseitig ausgeführt werden soll (z.B. JavaScript).

An den Stellen, an denen man nun den dynamischen Inhalt anzeigen möchte, werden nun CodeBlöcke mit ScriptCode eingefügt, der vom Scriptprozessor verarbeitet werden soll

Beispiele wären:

  • Eine Tabelle, die Artikeldaten mit Preisen für einen Web-Shop enthält. (z.B. Amazon, eBay, etc.).
  • Eine Linkliste nach vorheriger Eingabe eines Suchbegriffes (z.B. Google).
  • Eine Überschrift mit Kurztext mit Link auf einen weiterführenden Artikel (z.B. ORF, derStandard, OÖN, etc.).
  • Eine Liste mit Beiträgen, die in ein Web-Forum geschrieben wurden. (z.B.: Ö3-Chat)

Zur Erzeugung solcher CobeBlöcke stehen verschiedenste Programmiersprachen zur Verfügung, einige sollen hier herausgegriffen werden:

PHP: Abkürzung für „PHP: Hypertext Präprozessor“ ist eine serverseitige, in HTML-Seiten einbaubare Programmiersprache für Web-Anwendungen. Die Syntax von PHP ist gängigen Programmiersprachen ähnlich und zeichnet sich durch leichte Erlernbarkeit und großen Funktionsumfang für Zugriffe auf Datenquellen wie Datenbanken und Verzeichnisdiensten aus. PHP-Code wird in HTML zwischen spezielle Skript-Tags: eingebettet.

PHP hat sich nicht zuletzt auch deshalb sehr verbreitet, weil es

  • Open Source, d.h. frei für jedermann verfügbar und erweiterbar, ist.
  • auf sehr vielen Plattformen läuft (Windows, Linux, MacOS X,..).
  • hervorragend mit Apache, dem wahrscheinlich meistverbreiteten Web-Server, zusammen arbeitet.
  • besonders gut mit MySQL zusammenarbeitet, einer relationalen, schnellen Datenbank, die ebenfalls Open Source, plattformübergreifend und daher weit verbreitet ist.

PHP-Seiten haben die Endung *.php oder *.php3

JSP (Java Server Pages): Mit JSP werden sogenannte Java Servlets in HTML-Seiten eingebunden. Servlets sind Java-Programme, die auf dem Web-Server laufen. (vgl. dazu Applets, d.s. Java Programme, die auf dem Client laufen). Servlets sind Bestandteil der Java2 Enterprise Edition Plattform, die Schnittstelle zu unterschiedlichsten Java-Applikationen enthält. Solche Applikationen können komplexe Datenabfragen an Application Server und e-Commerce Systeme verarbeitet.

Java Servlets (bzw. Applikationen, die mit Servlets Daten austauschen) können mittlerweile mit fast allen gängigen Business-Software-Systemen verbunden werden und sind daher geeignet, unterschiedlichste Unternehmensdaten an Web-Seiten zu liefern.Beispiele wären Umsatzzahlen, Verkaufsauswertungen, Online-Bestellsysteme mit automatisiertem Lagerbestandskorrekturen, Daten aus Warenwirtschafssystemen, Kontostandsdaten und Finanzdaten für Online Brokerrage (Wertpapierhandel).

Unter Java versteht man mittlerweile, neben der Programmiersprache, ein ganzes Portfolio von Softwareprodukten, das von Sun vertrieben wird und das ebenfalls OpenSource, d.h. im Wesentlichen frei verfügbar und erweiterbar, ist.
Java Server Pages haben meistens die Endung *.jsp. Der Javacode wird zwischen <%...%> Tags gestellt

ASP: (Active Server Pages): Active Server Pages ist eine Technologie von Microsoft, mit deren Hilfe Visual Basic-Code und ActivX-Objekte in Webseiten eingefügt werden können.

Bei Visual Basic handelt sich um eine von Microsoft entwickelte Scriptsprache mit deren Hilfe u.a. Daten innerhalb Microsoft Applikationen ausgetauscht werden können. ActiveX-Objekte sind - stark vereinfacht - Softwarekomponenten, die von anderen Anwendungen eingebettet werden können und deren Methoden und Eigenschaften sich durch Visual Basic ansprechen lassen. Dadurch sind - ähnlich wie bei Servlets - komplexe Datenanfragen an verschiedene Anwendungen möglich.

Grundsätzlich kann gesagt werden, dass ASP nur unter Microsoft Windows Betriebssystemen läuft, nicht frei verfügbar und daher auch nicht Open Source ist. Durch die mittlerweile hohe Durchdringung von Microsoft-Betriebssystemen haben ASP-Lösungen jedoch einen gewissen Grad an Bedeutung erreicht.
Active Server Pages haben die Endung *.asp bzw. *.aspx. Der SourceCode wird zwischen <%...%> Tags gestellt.

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