In diesem Kapitel wird beschrieben, wie Sie mit SSI-Anweisungen (Server-Side Includes) Informationen in CGI-Programme und HTML-Dokumente einfügen, die an einen Client übermittelt werden. Außerdem werden die Anpassung der Fehlernachrichten des Servers sowie die Zuordnung von Ressourcen beschrieben.
Mit Server-Side Includes können Sie CGI-Programmen und HTML-Dokumenten Informationen hinzufügen, die der Server an den Client sendet, wenn er als Ursprungsserver auftritt (weitergeleitete und zwischengespeicherte Objekte sind nicht betroffen). Das aktuelle Datum, die Dateigröße und das Datum der letzten Änderung einer Datei sind Beispiele für die Art von Informationen, die an den Client gesendet werden können. Dieser Abschnitt beschreibt das Befehlsformat für Server-Side Includes und erläutert die Schritte, die erforderlich sind, damit Server-Side-Include-Befehle in CGI-Programmen und HTML-Dokumenten funktionieren. Sie können Server-Side Includes auch zum Anpassen von Fehlerseiten verwenden.
Bevor Sie Server-Side Includes auf Ihrem Server verwenden, sollten Sie folgende Aspekte bezüglich Leistung, Sicherheit und Risiken bedenken:
Wählen Sie in den Konfigurations- und Verwaltungsformularen Serverkonfiguration –> Basiseinstellungen aus, um die Unterstützung für Server-Side Includes zu aktivieren. In diesem Formular können Sie angeben, welche der folgenden Arten von Server-Side Includes akzeptiert werden:
Außerdem können Sie in diesem Formular festlegen, ob die Verarbeitung von Server-Side Includes zusätzlich zu anderen Dateitypen auch für Text- und HTML-Dokumente vorgenommen werden soll.
Stellen Sie außerdem sicher, dass die Dateierweiterung, die Sie für Server-Side Includes verwenden, erkannt wird. Wählen Sie in den Konfigurations- und Verwaltungsformularen Serverkonfiguration –> MIME-Typen und -Codierung aus und rufen Sie das Formular MIME-Typen auf. Standardmäßig werden die Erweiterungen shtml und htmls erkannt.
Die folgenden Referenzabschnitte beschreiben, wie Sie durch Ändern der Anweisungen in der Konfigurationsdatei Ihren Proxy-Server für die Unterstützung von Server-Side Includes konfigurieren:
Include-Befehle müssen in Form von Kommentaren in das HTML-Dokument oder CGI-Programm eingefügt werden. Die Befehle müssen das folgende Format haben:
<!--#Anweisung Tag=Wert ... --> oder <!--#Anweisung Tag="Wert" ... -->
Die Werte müssen nur dann in Anführungszeichen gesetzt werden, wenn sie Leerzeichen enthalten.
In diesem Abschnitt werden die Anweisungen beschrieben, die der Server für Server-Side Includes akzeptiert. (Verwechseln Sie diese Anweisungen nicht mit den Anweisungen für die Konfigurationsdatei des Proxy-Servers, die in Anhang B. Anweisungen in der Konfigurationsdatei beschrieben werden.)
config - Dateiverarbeitung steuern
Mit dieser Anweisung können Sie bestimmte Aspekte der Dateiverarbeitung steuern. Die gültigen Tags sind cmntmsg, errmsg, sizefmt und timefmt.
Beispiel:
<!--#config cmntmsg="[Dies ist ein Kommentar]" --> <!-- #echo var=" " zusätzlicher Text -->
Ergebnis: <!--[Dies ist ein Kommentar] zusätzlicher Text -->
Standard: [Folgendes war zusätzlich in der Anweisung]
Beispiel:
<!-- #config errmsg="[Es ist ein Fehler aufgetreten]" -->
Standard: "[Fehler beim Verarbeiten dieser Anweisung]"
Beispiel 1:
<!--#config sizefmt=bytes --> <!--#fsize file=foo.html -->
Ergebnis: 1024
Beispiel 2:
<!--#config sizefmt=abbrev --> <!--#fsize file=foo.html -->
Ergebnis: 1 KB
Standard: "abbrev"
Beispiel:
<!--#config timefmt="%D %T" --> <!--#flastmod file=foo.html -->
Ergebnis: "18/10/95 12:05:33"
Standard: "%a, %d %b %Y %T %Z"
Die folgenden Formate für strftime() können für das Tag timefmt verwendet werden:
Kennung | Bedeutung |
---|---|
%% | Durch % ersetzen |
%a | Durch den abgekürzten Namen des Wochentags ersetzen |
%A | Durch den vollständigen Namen des Wochentags ersetzen |
%b | Durch den abgekürzten Namen des Monats ersetzen |
%B | Durch den vollständigen Namen des Monats ersetzen |
%c | Durch Datum und Uhrzeit ersetzen |
%C | Durch die Jahreszahl ersetzen (Jahr dividiert durch 100 und abgeschnitten) |
%d | Durch den Tag des Monats ersetzen (01-31) |
%D | Datum im Format %m/%t/%j einfügen |
%e | Monat als Dezimalzahl einfügen (01-12) (unter C POSIX ist dies ein zweistelliges, rechtsbündiges Feld mit Leerzeichen) |
%E[cCxyY] | Wenn das alternative Datum/Uhrzeit-Format nicht verfügbar ist, werden die %E-Deskriptoren ihren nicht erweiterten Entsprechungen zugeordnet (%EC wird z. B. %C zugeordnet). |
%Ec | Durch die alternative Darstellung von Datum und Uhrzeit ersetzen |
%EC | Durch den Namen des Basisjahrs (Zeitraum) in der alternativen Darstellung ersetzen |
%Ex | Durch die alternative Darstellung des Datums ersetzen |
%EX | Durch die alternative Darstellung der Uhrzeit ersetzen |
%Ey | Durch die Jahreszahl ohne Jahrhundert (%EC) in der alternativen Darstellung ersetzen |
%EY | Durch die vollständige alternative Jahresdarstellung ersetzen |
%h | Durch den abgekürzten Namen des Monats ersetzen (wie %b) |
%H | Durch die Stunde (23-Stunden-Format) in Dezimalformat (00-23) ersetzen |
%I | Durch die Stunde (12-Stunden-Format) in Dezimalformat (00-12) ersetzen |
%j | Durch den Tag des Jahres (001-366) ersetzen |
%m | Durch den Monat (01-12) ersetzen |
%M | Durch die Minute (00-59) ersetzen |
%n | Durch eine neue Zeile ersetzen |
%O[deHlmMSUwWy] | Wenn das alternative Datum/Uhrzeit-Format nicht verfügbar ist, werden die %E-Deskriptoren ihren nicht erweiterten Entsprechungen zugeordnet (%Od wird z. B. %d zugeordnet). |
%Od | Durch den Tag des Monats unter Verwendung der alternativen numerischen Symbole, nach Bedarf aufgefüllt mit führenden Nullen ersetzen, falls es ein alternatives Symbol für Null gibt, andernfalls mit führenden Leerzeichen |
%Oe | Durch den Tag des Monats unter Verwendung der alternativen numerischen Symbole, nach Bedarf aufgefüllt mit führenden Leerzeichen ersetzen |
%OH | Durch die Stunde (24-Stunden-Format) unter Verwendung der alternativen numerischen Symbole ersetzen |
%OI | Durch die Stunde (12-Stunden-Format) unter Verwendung der alternativen numerischen Symbole ersetzen |
%Om | Durch den Monat unter Verwendung der alternativen numerischen Symbole ersetzen |
%OM | Durch die Minuten unter Verwendung der alternativen numerischen Symbole ersetzen |
%OS | Durch die Sekunden unter Verwendung der alternativen numerischen Symbole ersetzen |
%OU | Durch die Kalenderwoche (Sonntag als erster Tag der Woche, Regeln wie bei %U) unter Verwendung der alternativen numerischen Symbole ersetzen |
%Ow | Durch den Wochentag (Sonntag=0) unter Verwendung der alternativen numerischen Symbole ersetzen |
%OW | Durch die Kalenderwoche (Montag als erster Tag der Woche) unter Verwendung der alternativen numerischen Symbole ersetzen |
%Oy | Durch das Jahr (ohne Jahrhundert (%C)) in der alternativen Darstellung und unter Verwendung der alternativen numerischen Symbole ersetzen |
%p | Durch die lokale Entsprechung für AM und PM ersetzen |
%r | Durch die Zeichenfolgeentsprechung für %I:%M:%S %p ersetzen |
%R | Durch die Uhrzeit im 24-Stunden-Format (%H:%M) ersetzen |
%S | Durch die Sekunden (00-61) ersetzen |
%t | Durch einen Tabulator ersetzen |
%T | Durch die Zeichenfolgeentsprechung für %H:%M:%S ersetzen |
%u | Durch den Wochentag im Dezimalformat (1-7) ersetzen, wobei die 1 für Montag steht |
%U | Durch die Kalenderwoche (00-53) ersetzen, wobei Sonntag der erste Tag der Woche ist |
%V | Durch die Kalenderwoche (01-53) ersetzen, wobei Montag der erste Tag der Woche ist |
%w | Durch den Wochentag (0-6) ersetzen, wobei die 0 für Sonntag steht |
%W | Durch die Kalenderwoche (00-53) ersetzen, wobei Montag der erste Tag der Woche ist |
%x | Durch die entsprechende Datumsdarstellung ersetzen |
%X | Durch die entsprechende Uhrzeitdarstellung ersetzen |
%y | Durch die zweistellige Jahresangabe (ohne Jahrhundert) ersetzen |
%Y | Durch die vollständige vierstellige Jahresangabe ersetzen |
%Z | Durch den Namen der Zeitzone bzw. eine leere Zeichenfolge ersetzen, falls die Zeitzone unbekannt ist |
Die Konfiguration des Betriebssystems legt die vollständigen und abgekürzten Angaben für Monate und Jahre fest.
echo - Variablenwerte anzeigen
Mit dieser Anweisung können Sie den Wert von Umgebungsvariablen anzeigen, die mit dem Tag var angegeben werden. Wenn eine Variable nicht gefunden wurde, wird (None) angezeigt. Außerdem können Sie mit echo einen Wert anzeigen, der mit der Anweisung set oder global festgelegt wurde. Folgende Umgebungsvariablen können angezeigt werden:
Beispiel:
<!--#echo var=SSI_DIR -->
exec - CGI-Programme angeben
Mit dieser Anweisung können Sie die Ausgabe eines CGI-Programms einfügen. Die Anweisung exec verwirft alle HTTP-Header, die vom CGI-Programm ausgegeben werden, mit Ausnahme der folgenden:
cgi - URL-Adresse des CGI-Programms angeben
Mit dieser Anweisung können Sie den URL eines CGI-Programms angeben.
In diesem Beispiel ist program das CGI-Programm, das ausgeführt werden soll. path_info und query_string stehen für einen oder mehrere Parameter, die als Umgebungsvariablen an das Programm übergeben werden.
<!--#exec cgi="/cgi-bin/program/path_info?query_string" -->
Dieses Beispiel zeigt die Verwendung der Variablen:
<!--#exec cgi="&path;&cgiprog;&pathinfo;&querystring;" -->
flastmod - Datum und Uhrzeit der letzten Dokumentänderung anzeigen
Mit dieser Anweisung können Sie Datum und Uhrzeit der letzten Dokumentänderung anzeigen. Das Format dieser Variablen wird mit der Anweisung config timefmt festgelegt. Die gültigen Tags für diese Anweisung sind file und virtual, die im Folgenden beschrieben werden.
Anweisungsformate:
<!--#flastmod file="/Pfad/Datei" --> <!--#flastmod virtual="/Pfad/Datei" -->
<!--#flastmod file="/Pfad/Datei" -->
<!--#flastmod virtual="/Pfad/Datei" -->
Beispiel:
<!--#flastmod file="foo.html" -->
Ergebnis: 12May96
fsize - Dateigröße anzeigen
Mit dieser Anweisung können Sie die Größe der angegebenen Datei anzeigen. Das Format dieser Variablen wird mit der Anweisung config sizefmt festgelegt. Die gültigen Tags für diese Anweisung sind file und virtual, die im Abschnitt zur Anweisung flastmod beschrieben sind.
Beispiel:
<!--#fsize file="/Pfad/Datei" --> <!--#fsize virtual="/Pfad/Datei" -->
Ergebnis: 1K
global - Globale Variablen definieren
Mit dieser Anweisung können Sie globale Variablen definieren, die zu einem späteren Zeitpunkt von dieser Datei oder anderen eingefügten Dateien zurückgemeldet werden können.
Beispiel:
<!--#global var=Variablenname value="einWert" -->
Wenn Sie beispielsweise auf ein übergeordnetes Dokument außerhalb der virtuellen Grenzen verweisen möchten, müssen Sie die globale Variable DOCUMENT_URI definieren. Außerdem müssen Sie im untergeordneten Dokument auf die globale Variable verweisen. Dieses Beispiel zeigt die HTML-Codierung, die Sie in das übergeordnete Dokument einfügen müssen:
<!--#global var="PARENT_URI" value=&DOCUMENT_URI; -->
Dieses Beispiel zeigt die HTML-Codierung, die Sie in das untergeordnete Dokument einfügen müssen:
<!--#flastmod virtual=&PARENT_URI; -->
include - Ein Dokument in die Ausgabe einfügen
Mit dieser Anweisung können Sie den Text eines Dokuments in die Ausgabe einfügen. Die gültigen Tags für diese Anweisung sind file und virtual, die im Abschnitt zur Anweisung flastmod beschrieben werden.
set - Zurückzumeldende Variablen festlegen
Mit dieser Anweisung können Sie eine Variable definieren, die zu einem späteren Zeitpunkt von dieser Datei (ausschließlich) zurückgemeldet werden kann.
Beispiel:
<!--#set var="Variable 2" value="AndererWert" -->
Wenn Sie eine Anweisung definieren, können Sie innerhalb von value eine Zeichenfolge zurückgeben. Beispiel:
<!--#include file="&Dateiname;" -->
Variablen: Einer auf Serverseite definierten Anweisung set folgt im Allgemeinen eine Anweisung echo, d. h. die definierte Variable wird gesucht und, sofern möglich, zurückgemeldet. Anschließend wird die Ausführung der Funktion fortgesetzt. Die Anweisung kann mehrere Verweise auf Variablen enthalten. Außerdem können Sie mit set-Anweisungen auf Serverseite eine bereits definierte Variable zurückmelden. Falls keine definierte Variable gefunden wird, wird nichts angezeigt.
Wenn eine auf Serverseite definierte Anweisung set in einer SSI-Anweisung einen Variablenverweis findet, versucht sie, diesen Verweis auf Serverseite aufzulösen. In der zweiten Zeile des folgenden Beispiels bildet die Servervariable &index; zusammen mit der Zeichenfolge var den Variablennamen var1. Anschließend wird der Variablen &var1; ein Wert zugeordnet, indem dem Et-Zeichen (&) im Ausdruck ê ein Escape-Zeichen vorangestellt wird, damit dieser Ausdruck nicht als Variable interpretiert wird. Er wird vielmehr als Zeichenfolge verwendet, um den Wert frêd bzw. fred mit einem Zirkumflex über dem e zu bilden. Die Variable ê ist eine clientseitige Variable.
<!--#set var="index" value="1" --> <!--#set var="var&index;" value="fr\êd" --> <!--#echo var="var1" -->
Die folgenden Zeichen können durch Voranstellen eines Backslash (\) geschützt werden:
Zeichen | Bedeutung |
---|---|
\a | Alert (Signalton) |
\b | Rückschritt |
\f | Formularvorschub (Seitenvorschub) |
\n | Neue Zeile |
\r | Zeilenschaltung |
\t | Horizontaltabulator |
\v | Vertikaltabulator |
\' | Einfaches Anführungszeichen |
\" | Doppeltes Anführungszeichen |
\? | Fragezeichen |
\\ | Umgekehrter Schrägstrich |
\- | Silbentrennungsstrich |
\. | Punkt |
\& | Et-Zeichen |
Sie können die von Caching Proxy zurückgegebenen Fehlernachrichten anpassen und für bestimmte Fehlerbedingungen spezielle Nachrichten definieren. Wählen Sie in den Konfigurations- und Verwaltungsformularen Serverkonfiguration –> Anpassung von Fehlernachrichten aus. In diesem Formular können Sie eine Fehlerbedingung auswählen und eine bestimmte HTML-Datei angeben, die für diese Bedingung verwendet werden soll.
Informationen zum Anpassen von Fehlernachrichten durch Editieren der Anweisungen in der Konfigurationsdatei des Proxy-Servers finden Sie im Abschnitt zur Anweisung ErrorPage - Für eine bestimmte Fehlerbedingung eine angepasste Nachricht angeben.
Dies gilt nur für Reverse-Proxy-Konfigurationen.
Mit RTSP Redirector, einem neuen Feature von WebSphere Application Server Version 8.0, wird jetzt das Streaming von Multimediadateien unterstützt. Mit RTSP ist Caching Proxy in der Lage, Kontakt zu Media-Playern herzustellen und deren Anforderungen an einen geeigneten Proxy-Server oder Content-Server weiterzuleiten, der die angeforderten Multimediainhalte bereitstellt.
RTSP (Real Time Streaming Protocol) ist in RFC 2326 definiert und ein Internet-Standardprotokoll für die Steuerung von Datenströmen. Obwohl RTSP keine Technologie zum Senden von Datenströmen beinhaltet, ist es so flexibel, dass es zur Steuerung von Datenströmen eingesetzt werden kann, die sich nicht auf die Video- oder Audiowiedergabe beschränken.
Mit der Umleitungsfunktion von RTSP kann Caching Proxy Anforderungen für jede von RTSP gesteuerte Multimediasitzung umleiten, die Streaming unterstützt. Dies betrifft folgende Multimediatypen:
Jede Wiedergabeeinheit (Player), deren Konfiguration die Kontaktaufnahme zu einem Proxy-Server am RTSP-Port (in der Regel 554) unterstützt, kann dieses Framework in Caching Proxy verwenden, um ihre Anforderungen von RTSP Redirector bearbeiten zu lassen.
Multimediapräsentationen werden von RTSP Redirector weder zwischengespeichert noch direkt umgeleitet. Für die Unterstützung dieser beiden Funktionen muss RTSP Redirector zusammen mit einem Multimediaserver eines Fremdanbieters eingesetzt werden, der Streaming unterstützt. Wenn RTSP Redirector in Caching Proxy verwendet wird, muss der Zugriff auf einen oder mehrere RTSP-Proxy-Server über das Netz möglich sein.
Für diese Funktion gilt folgende Einschränkung:
Derzeit werden nur RealNetworks-Technologien unterstützt. Dazu gehören der RealProxy-Proxy-Server, der RealServer-Ursprungsserver sowie der RealPlayer.
In früheren Versionen unterlag RTSP Redirector der Einschränkung, dass alle Anforderungen an denselben Ursprungsserver für alle URLs auf dieselbe Weise umgeleitet wurden. Eine Umleitung basierend auf Dateinamen oder anderen Teilen des angeforderten URL war nicht möglich. Diese Einschränkung gilt nicht mehr. RTSP Redirector verwendet jetzt den vollständigen URL aus den empfangenen Anforderungen zusammen mit dem Schwellenwert (rtsp_proxy_threshold), der in der Konfigurationsdatei von Caching Proxy festgelegt ist, um zu bestimmen, ob die Clientanforderungen an den Ursprungsserver oder an einen Proxy-Server umgeleitet werden. Anforderungen an denselben Ursprungsserver werden individuell behandelt.
Mit den folgenden Anweisungen in der Konfigurationsdatei können Sie die RTSP-Umleitung steuern. Die Einstellungen für diese Anweisungen werden bei einem Neustart des Servers nicht aktualisiert. Sie müssen den Server vollständig stoppen und anschließend erneut starten, damit die an diesen Anweisungen vorgenommenen Änderungen wirksam werden.