SSI: Einführung
von Jan Winkler
Unter dem Akronym SSI (Server Side Includes) verbirgt sich eine kleine aber feine Technologie um Webseiten ohne jegliches zutun dynamisch halten zu können. Zudem finden SSI des öfteren Gebrauch bei CGI-Anwendungen.
SSI ist eine Technologie, des Webservers, also keine Programmiersprache oder dergleichen sondern eher zu vergleichen mit einem Serverplugin. Hinter dieser Technologie stehen relativ einfache Anweisungen die es ermöglichen Webseiten dynamisch zu erweitern.
Mit SSI ist es so, z.B. relativ einfach möglich die aktuelle Uhrzeit, dynamische Texte oder andere Dinge anzuzeigen. Des weiteren können mittels SSI externe CGI-Anwendungen gestartet und ausgeführt werden.
Prinzipiell funktioniert SSI wie PHP , ASP oder andere vergleichbare Technologien: Bei SSI-Dokumenten handelt es sich um einfache HTML-Dokumente, die durch bestimmte SSI-Anweisungen erweitert wurden. Fragt ein Client ein SSI-Dokument vom Webserver an, wird dieses vom SSI-Parser analysiert. Der Parser erkennt die selbständig alle Stellen im Dokument, an denen SSI-Anweisungen auszuführen sind und verfährt entsprechend. Ist das gesamte Dokument so verarbeitet, wird das Resultatdokument an den Clienten geschickt. Das Orginaldokument bleibt bei diesem Vorgang jedoch unverändert: Der Parser schickt lediglich die veränderte Kopie an den Clienten.
Ganz allgemein benötigt man für SSI einen Webserver, der diese Technologie unterstützt. Dies tun z.B. die weit verbreiteten Server von Microsoft (IIS) und Apache . Davon abgesehen dass man die Technologie ggf. noch aktivieren muss, benötigt man sonst prinzipiell nichts. Da SSI in gewöhnliche HTML-Dokumente eingefügt wird, reicht zum Editieren auch ein entsprechender HTML-Editor oder ggf. Notepad.
Damit der Server dann noch die gewöhnlichen HTML-Dateien von denen mit SSI unterscheiden und entsprechend verfahren kann, muss in den meisten Fällen der Dateiname auf .shtml oder .shtm enden.
Der Syntax einer SSI-Anweisung ist recht einfach gehalten. Innerhalb eines HTML-Kommentars (<!-- ... -->) wird das Raute-Zeichen (#) gefolgt vom Befehl notiert. Anstelle von Parametern wie bei anderen Programmiersprachen, werden benötigte Werte hierbei via Attributwerte "übergeben". Schematisch sieht eine Anweisung also in etwa so aus:
<!--#befehl attribut="wert" -->
Innerhalb von SSI können die Servervariablen oder auch Umgebungsvariablen genannt ausgelesen und verwendet werden. Grundsätzlich ist deren Unterstützung zwar vom Server abhängig, jedoch sind die im Folgenden vorgestellten Variablen bei den gängigsten Servern verwendbar. Letztlich sollten Sie sich jedoch in der Dokumentation Ihres Servers erkundigen, welche Servervariablen dieser unterstützt. Folgende Variablen können bedenkenlos verwendet werden:
- DATE_GMT - gibt das Datum und Uhrzeit nach GMT an
- DATE_LOCAL - gibt das Datum und Uhrzeit nach lokaler Zeit an
- DOCUMENT_NAME - gibt den Namen der Datei an, in welcher der Befehl steht
- DOCUMENT_URI - gibt den Pfad zu der Datei an, in welcher der Befehl steht
- LAST_MODIFIED - gibt den Zeitpunkt der letzten Änderung der Datei an
- QUERY_STRING - gibt die vom Clienten übergebenen Parameter an