CGI.pm

CGI.pm

CGI.pm ist eine Sammlung fertiger Bausteine für die Programmiersprache Perl, mit der man in den 1990er- und 2000er-Jahren Webseiten programmierte, die auf Eingaben der Besucher reagieren. Das Modul war jahrelang der Standardweg, um Formulardaten auszulesen und daraus eine Antwortseite zu bauen.

CGI.pm ist eine fertige Werkzeugsammlung für Programmierer, ein sogenanntes Modul. Es gehörte zur Programmiersprache Perl, die früher sehr oft für Webseiten eingesetzt wurde. Die Aufgabe von CGI.pm war einfach zu beschreiben: Ein Besucher füllt auf einer Webseite ein Formular aus und klickt auf Absenden. Diese Eingaben landen als ziemlich unübersichtlicher Datenstrom beim Server, also bei dem Computer, der die Webseite ausliefert. CGI.pm nahm diesen Datenstrom entgegen, sortierte ihn und stellte dem Programm die Eingaben sauber als einzelne Werte zur Verfügung. Umgekehrt half es dabei, aus dem Ergebnis wieder eine fertige HTML-Seite zu bauen, also die Textform, in der Webseiten beim Browser ankommen.

Der Baustein hinter dem frühen Mitmach-Web

In den ersten Jahren des Webs waren Seiten reine Dokumente. Sie sahen für jeden Besucher gleich aus und änderten sich nur, wenn jemand die Datei von Hand bearbeitete. Gästebücher, Suchmasken, Bestellformulare und Foren brauchten aber Seiten, die für jeden Aufruf neu berechnet werden. Genau dafür gab es CGI, das Common Gateway Interface. Das ist eine Vereinbarung darüber, wie ein Webserver ein Programm startet und ihm die Anfrage des Besuchers übergibt.

Diese Vereinbarung war allerdings sehr grob. Jeder Programmierer musste die Eingaben selbst entschlüsseln, und dabei passierten ständig Fehler. CGI.pm erledigte diese Arbeit ein für alle Mal und korrekt. Ab 1997 wurde das Modul sogar direkt mit Perl mitgeliefert. Wer eine dynamische Seite bauen wollte, brauchte nichts zu installieren, sondern nur eine Zeile Code.

Historisch ist das bedeutsam, weil ein großer Teil des frühen kommerziellen Webs so entstand. Shops, Newsletter-Anmeldungen und Suchmaschinen liefen auf Perl-Skripten mit CGI.pm. Das Modul senkte die Einstiegshürde so weit, dass auch Hobbyisten mitmachen konnten. Ohne diese Schwelle wäre das Web deutlich langsamer gewachsen.

Vom Formular zur fertigen Seite

Der Ablauf war immer derselbe. Der Besucher schickt ein Formular ab, der Webserver startet daraufhin ein Perl-Programm. CGI.pm liest die mitgeschickten Daten aus und legt sie in eine Art Nachschlagetabelle. Das Programm fragt dann einfach nach dem Wert für ein bestimmtes Feld, etwa nach der eingegebenen E-Mail-Adresse. Der Programmierer musste sich nicht darum kümmern, ob die Daten in der Adresszeile oder im Hintergrund übertragen wurden.

Für den Rückweg bot das Modul Funktionen an, die HTML-Text erzeugen. Ein Aufruf lieferte den nötigen Vorspann für den Browser, weitere Aufrufe erzeugten Überschriften, Absätze oder Eingabefelder. Man konnte also eine komplette Seite schreiben, ohne selbst eine spitze Klammer zu tippen. Genau dieser Teil geriet später in die Kritik, weil Gestaltung und Programmlogik dabei ununterscheidbar vermischt wurden.

Ein häufiger Irrtum ist, CGI.pm sei eine Programmiersprache oder ein Server. Beides stimmt nicht. Es ist nur eine Hilfsbibliothek, die eine mühsame Routinearbeit abnimmt. Und es ist auch nicht dasselbe wie CGI selbst: CGI ist die Schnittstelle, CGI.pm war eine bequeme Art, sie in Perl zu benutzen.

Was heute davon übrig ist

Im modernen Webbau begegnet einem CGI.pm kaum noch. Seit 2015 wird es nicht mehr automatisch mit Perl ausgeliefert, und offiziell gilt es als veraltet. Neuere Perl-Projekte nutzen stattdessen Frameworks wie Mojolicious oder Dancer. Außerhalb von Perl haben ohnehin andere Werkzeuge das Feld übernommen, etwa PHP, Python mit Django oder JavaScript im Node-Umfeld.

Trotzdem läuft erstaunlich viel altes Zeug weiter. In Firmen, an Universitäten und in der Verwaltung stehen Systeme, die vor zwanzig Jahren gebaut wurden und ihren Zweck noch erfüllen. Solche Software nennt man Legacy-Systeme. Wer sie betreut, stößt schnell auf CGI.pm im Quelltext.

Für alle anderen ist der Begriff vor allem ein Stück Technikgeschichte. Er taucht auf, wenn über die Anfänge des Webs berichtet wird, oder in Diskussionen über technische Altlasten. Wer versteht, was CGI.pm gemacht hat, versteht auch, was heutige Web-Frameworks im Kern tun: Anfragen entgegennehmen, verarbeiten und eine Antwortseite zurückschicken. Die Idee ist geblieben, nur die Werkzeuge sind bequemer geworden.

Aktuelle News

Subscribe free. Unsubscribe the second it sucks.

High-signal news across AI, business, UX, and tech. Every morning.