Die Serverseite enthält
Die Serverseite enthält (SSI) ist eine einfache interpretierte serverseitiges Skripting Sprache, die fast ausschließlich für die verwendet wird Weltweites Netz. Es ist am nützlichsten, um den Inhalt einer oder mehrerer Dateien in eine Webseite auf a aufzunehmen Webserver (siehe unten), mit seiner #enthalten
Richtlinie. Dies könnte häufig ein gemeinsames Stück Code auf einer Website sein, z. B. ein Seitenkopf, eine Seitenfußzeile und ein Navigationsmenü. SSI enthält auch Kontrollrichtlinien für bedingte Funktionen und Richtlinien für das Aufrufen externer Programme. Es wird von unterstützt von Apache, LiteSpeed, nginx, Iis ebenso gut wie W3cJigsaw.[1] Es hat seine Wurzeln in NCSA HTTPD.[2]
Damit ein Webserver ein SSI-fähig erkennt Html Datei und damit diese Anweisungen ausführen, entweder der Dateiname sollte mit einem Special enden Verlängerung, standardmäßig .Shtml
, .stm
, .Shtm
, oder, wenn der Server so konfiguriert ist, dass dies dies zulässt, das Ausführungsbit der Datei festlegen.[3]
Entwurf
Als einfache Programmiersprache unterstützt SSI nur eine Typ: Text. Es ist Steuerfluss ist ziemlich einfach, die Wahl wird unterstützt, aber Schleifen werden nicht nativ unterstützt und können nur durch Rekursion verwendet werden, um inklusive oder verwenden HTTP -Umleitung.[a] Das einfache Design der Sprache erleichtert das Erlernen und Gebrauch als die meisten serverseitigen Skriptsprachen, während eine komplizierte serverseitige Verarbeitung häufig mit durchgeführt wird Eine der merkmalreichen Programmiersprachen. Ssi ist Turing vollständig.[4]
SSI hat eine einfache Syntax: . Die Anweisungen werden in HTML -Kommentaren gestellt, sodass Benutzer die SSI -Direktiven auf der Seite nicht sehen, wenn sie nicht aktiviert sind, es sei denn, sie betrachten ihre Quelle. Beachten Sie, dass die Syntax keine Leerzeichen zwischen dem führenden "<" und der Richtlinie zulässt. Das Apache-Tutorial zum SSI stiktiert das Format vor dem "->", das das Element schließt.[5]
Beispiele
Eine Webseite mit einem täglichen Angebot könnte das Angebot enthalten, indem der folgende Code in die Datei der Webseite eingelegt wird:
Mit einer Änderung der quote.txt
Datei, alle Seiten, die die Datei enthalten, werden das neueste tägliche Angebot angezeigt. Die Aufnahme ist nicht auf Dateien beschränkt und kann auch die Textausgabe eines Programms oder der Wert einer Systemvariablen wie der aktuellen Zeit sein.
Richtlinien
Verbreitet
Die folgenden sind SSI -Richtlinien aus der Zeit von Zeiten von NCSA HTTPD (die 1990er Jahre).[2] Einige Implementierungen unterstützen nicht alle.[6]
Richtlinie | Parameter | Beschreibung | Beispiel |
---|---|---|---|
enthalten | Datei oder virtuell | Dies ist wahrscheinlich die am häufigsten verwendete SSI -Richtlinie. Es ermöglicht den Inhalt eines Dokuments transkludiert in einem anderen. Das mitgelieferte Dokument kann selbst eine weitere SSI-fähige Datei sein. Das Datei oder virtuell Parameter geben die Datei an (Html Seite, Textdatei, Skript usw.), um enthalten zu sein. NCSA HTTPD unterstützte nicht CGI über enthalten ,[2] aber später apache httpd.[7] Wenn der Prozess nicht zugegriffen hat, um die Datei zu lesen oder das Skript auszuführen, fehlschlägt der Einfügen. Der Parameter "virtuell "Verwandt alle Verzeichnispfade, als ob sie Teil der URL, während", während "Datei "Griff alle Verzeichnispfade wie im zugrunde liegenden Dateisystem. Bei Verwendung"Datei "Es ist verboten, auf absolute Pfade zu verweisen oder ../ Zu Zugang zu einem übergeordneten Verzeichnis. Die Apache -Dokumentation empfiehlt die Verwendung "virtuell " bevorzugt gegen "Datei ".[7] | |
Geschäftsführer | CGI oder CMD | Diese Richtlinie führt auf dem Server einen Befehl programm, Skript oder Shell aus. Der CMD-Parameter gibt einen serverseitigen Befehl an. Der CGI -Parameter gibt den Pfad zu a an CGI Skript. Das Path_info und Query_string des aktuellen SSI -Skripts werden an das CGI -Skript übergeben, wobei "Exec CGI" anstelle von "virtuell einschließen" verwendet werden sollte. | |
Echo | var | Diese Richtlinie zeigt den Inhalt eines angegebenen Anweisungen an Http Umgebungsvariable. Variablen umfassen Http_user_agent , ZULETZT BEARBEITET , und Http_accept . | Ihre IP-Adresse lautet: <!-#echo var = "remote_addr"-> |
Konfiguration | timefmt, sizefmt oder errmsg | Diese Direktive konfiguriert die Anzeigeformate für Datum, Uhrzeit, Filesize und Fehlermeldung (zurückgegeben, wenn ein SSI -Befehl fehlschlägt). | |
Flastmod und fsire | Datei oder virtuell | Diese Richtlinien zeigen das Datum an, an dem das angegebene Dokument zuletzt geändert wurde, oder die Größe des angegebenen Dokuments. Die Datei oder die virtuellen Parameter geben das zu verwendende Dokument an. Der Dateiparameter definiert das Dokument als relativ zum Dokumentpfad. Der virtuelle Parameter definiert das Dokument als relativ zum Dokumentstamm. | |
Kontrollrichtlinien
Kontrollrichtlinien werden später zu SSI hinzugefügt. Dazu gehören die allgegenwärtige IF-ELIF-ELSE-Endif-Flussregelung und variable Schreiben sowie exotischere Merkmale wie Schleifen, die nur in einigen Implementierungen zu finden sind.
Richtlinie | Parameter | Beschreibung | Beispiel | Gefunden in |
---|---|---|---|---|
| Expr | Das wenn Anweisung. Wird für Zustandstests verwendet, die mehrere logische Seiten von einer einzelnen physischen Seite bestimmen und generieren können. elif ist eine Abkürzung für verschachtelte Else-wenn. anders und Endif Akzeptieren Sie keine Parameter.Die Expressionssyntax variiert zwischen Implementierungen. Variable Existenz und Gleichheit/Regex -Überprüfungen werden allgemein unterstützt. Jigsaw verwendet stattdessen Ausdrücke, die über mehrere Attribute geteilt werden.[1] | | Allgegenwärtig. |
einstellen | var, Wert | Legt den Wert einer SSI -Variablen fest. Apache liefert zusätzliche Parameter für Codierungen.[8] | Apache,[8] Nginx[9] | |
drucken | Diese Richtlinie gibt eine Liste aller SSI-Variablen und ihrer Werte aus, einschließlich umgebungs- und benutzerdefinierter Variablen. Es hat keine Attribute. | Apache[8] |
Siehe auch
Anmerkungen
- ^ Trotzdem in einigen Implementierungen, einschließlich Puzzle.
Verweise
- ^ a b "SSI -Befehle". W3c. Abgerufen 24. März 2019.
- ^ a b c "Serverseite enthält (SSI)". NCSA HTTPD -Tutorial. Archiviert von das Original am 3. März 1997. Abgerufen 24. März 2019.
- ^ "Konfigurieren Sie Ihren Server so, dass SSI SSI ermöglicht". Apache Tutorial: Einführung in die Serverseite enthält. Die Apache Software Foundation. Abgerufen 24. Juni 2015.
- ^ "Serverseite enthält Turing Machine, Jan Schejbal". Janschejbal.de. Abgerufen 2012-12-06.
- ^ "Grundlegende SSI -Richtlinien und Syntax". 2018-02-09. Abgerufen 2018-02-09.
- ^ "Modul ngx_http_ssi_module". Nginx -Dokumentation. Abgerufen 16. November 2021.
- ^ a b "Apache Modul mod_include". Apache HTTP Server Version 2.4 Dokumentation. Apache Software Foundation. Abgerufen 2021-09-07.
- ^ a b c "mod_include". Apache HTTP Server. Abgerufen 25. März 2019.
- ^ "ngx_http_ssi_module". nginx.org. Abgerufen 25. März 2019.
Externe Links
- Sprachreferenz aus Implementierungen:
- Apache: Apache mod_include Referenz.Ruft Richtlinien "Elemente" an.
- Nginx: Modul ngx_http_ssi_module.Ruft Richtlinien "Befehle" an.
- NCSA HTTPD: Original NCSA HTTPD SSI Referenz.Ruft Richtlinien "Befehle" an.
- W3C Jigsaw: Serverseite enthalten Befehle.Ruft Richtlinien "Elemente" an.Hoch erweitert mit Servlets, JDBC, Http Cookieund Schleifen.
- Tutorials: