wie tief werden SSI interpretiert?
Dominic
- webserver
hallo!
Ich verwende auf meiner Seite einen SSI-Befehl (include), um eine andere .shtml Seite einzufügen, die wiederum selbst einen SSI-Befehl (last modified) enthält. Das funktioniert mit meinem lokalen Webserver (Xitami) und auch mit dem meines Providers. Das heißt die zweite .shtml-Seite wird korrekt in die erste integriert und auch das Datum der letzten Änderung wird angezeigt.
Jetzt meine Frage: Klappt das auf jedem Server einwandfrei und bis zu welcher Ebene funktioniert das? Könnte ich also theorethisch eine Seite erstellen, in der eine andere per include enthalten ist, in der eine weitere per include erhalten ist, in der noch eine enhalten ist, usw.?
vielen Dank im Voraus,
Dominic
Hi Dominic,
wenn es sich einmal schachteln lässt, lässt es sich ewig schachteln, also kannst du so viele SSIs in SSIs einbinden, wie du lustig bist.
Ich nehme an du benutzt da den "include virtual" Befehl. Wenn du nämlich ein Script includest, dann wird der output vom Script nicht weiter geparst, d.h. wenn du mit deinem script einen SSI ausgibst, dann wird es nicht mehr dargestellt.
Interessant wäre mal auszuprobieren was passiert, wenn man ein dokument per SSI sich selbst einbinden lässt und damit eine endlos Schleife erzeugt. Schätzungsweise gibt das irgendwann einfach einen Timeout, aber vielleicht kommt da auch was lustiges bei raus.
Gruß
Cruz
hallo!
Ich verwende auf meiner Seite einen SSI-Befehl (include), um eine andere .shtml Seite einzufügen, die wiederum selbst einen SSI-Befehl (last modified) enthält. Das funktioniert mit meinem lokalen Webserver (Xitami) und auch mit dem meines Providers. Das heißt die zweite .shtml-Seite wird korrekt in die erste integriert und auch das Datum der letzten Änderung wird angezeigt.
Jetzt meine Frage: Klappt das auf jedem Server einwandfrei und bis zu welcher Ebene funktioniert das? Könnte ich also theorethisch eine Seite erstellen, in der eine andere per include enthalten ist, in der eine weitere per include erhalten ist, in der noch eine enhalten ist, usw.?vielen Dank im Voraus,
Dominic
Hi,
wenn es sich einmal schachteln lässt, lässt es sich ewig schachteln, also kannst du so viele SSIs in SSIs einbinden, wie du lustig bist.
ein gewagter Schluß!
Würde *ich* einen Webserver programmieren, dann würde ich mir zumindest einen Mechanismus dagegen einfallen lassen, daß ein DAU versehentlich durch rekursives SSI-include meine gesamten Server-Ressourcen wegfrißt und hunderte anderer Benutzer lahmlegt, weil die Maschine nur noch swappt.
(Beispielsweise einen Rekursionszähler oder so was Ähnliches.)
Interessant wäre mal auszuprobieren was passiert, wenn man ein dokument per SSI sich selbst einbinden lässt und damit eine endlos Schleife erzeugt.
Das denke ich auch. Vielleicht auch ein Blick in den Quelltext - in der Dokumentation von mod_include habe ich auf die Schnelle nichts gefunden ...
mfG - Michael
Hi!
Jetzt meine Frage: Klappt das auf jedem Server einwandfrei und bis zu welcher Ebene funktioniert das? Könnte ich also theorethisch eine Seite erstellen, in der eine andere per include enthalten ist, in der eine weitere per include erhalten ist, in der noch eine enhalten ist, usw.?
Generell kann man dies vermutlich nicht sagen. Ich kann nur meien Erfahrungen mit IIS4 und Apache schildern. Also mit ASPs auf dem IIS4 wurden zwei Ebenen auf jeden Fall includiert, ohne dass ich da was besonderes haette dazu tun muessen. Ob die Tiefe beschraenkt ist, weiss ich nicht, da ich nur zwei gebraucht habe. Beim Apache kommt es drauf an, was includiert wird. Es wird naemlich genau das eingebunden, was zum Browser geschickt werden wuerde, wenn man die eingebundene Datei direkt anfordern wuerde. Das heisst, wenn Du eine .shtml einbindest, wird die selber auch nochmal geparst, bindest Du aber eine .html ein, wird diese 1:1 uebernommen (wenn man von einer herkoemmlichen Apache-Konfiguration ausgeht). Durch Direktiven in der .htaccess kannst Du das dann natuerlich beeinflussen. Siehe auch http://www.apache.org/docs/mod/mod_include.html.
So long