Wir haben im vorigen Kapitel über das HTTP-Protokoll Webseiten
von einem Server angefordert. Dieses Kapitel ist der Serverseite
gewidmet, also der Erzeugung von HTML-Seiten. Auch in diesem Bereich
stellt Ruby verschiedenste Werkzeuge für den Entwickler bereit.
In dem lesenswerten Artikel [Viaweb] wird beschrieben, wie Viaweb mit
Lisp in kurzer Zeit eine hochrentable E-Commerce-Website erstellt hat. Der
Einsatz von dynamischen Hochsprachen zahlt sich nicht nur in kürzerer
Entwicklungszeit und daraus folgender frühzeitiger Marktpräsenz aus: Viaweb
wurde für 50 Millionen $ an Yahoo verkauft.
Common Gateway Interface (CGI) ist ein Standard, um mit einem Webserver
Daten mit externen Programmen
austauschen zu können. Alle gängigen Webserver unterstützen CGI, viele
Skriptsprachen (Perl, Python) haben durch die weite Verbreitung von
CGI-Skripten sehr an Beliebtheit gewonnen.
CGI-Skripte sind einfach zu programmieren,
aber auch relativ langsam
, da
für jeden CGI-Skript-Aufruf ein neuer Prozess gestartet werden
muss. Grundlagen der CGI-Programmierung findet man in [CGI].
Rubys CGI-Modul enthält das nötige Werkzeug, um HTML-Seiten und Formulare dynamisch zu erzeugen und auszuwerten, sowie Methoden zum Arbeiten mit Cookies und Sessions. Es erlaubt auch den Zugriff auf die Umgebungsvariablen des Webservers, wobei die üblichen CGI-Namen in der Regel mit Kleinbuchstaben geschrieben werden.
Wie bei anderen Sprachen auch können einfache CGI-Skripte, die keine Browserfunktionen wie Speichern von Cookies etc. benötigen, auch ohne Webserver getestet werden, indem sie über Batch-Dateien mit Parametern versorgt werden. Komplexere Aufgaben verlangen dann aber auch bessere Werkzeuge, zum Beispiel wie die im Abschnitt 32.5 beschriebenen oder auch den im Ruby Application Archive [RAA] verfügbaren WebUnit.