Zahrnuje stranu serveru - Server Side Includes
Zahrnuje stranu serveru (SSI) je jednoduchý výklad skriptování na straně serveru jazyk používaný téměř výlučně pro Celosvětová Síť. Je to nejužitečnější pro zahrnutí obsahu jednoho nebo více souborů na webovou stránku v a webový server, pomocí jeho #zahrnout
směrnice. To může být běžně běžný kus kódu na celém webu, například záhlaví stránky, zápatí stránky a navigační nabídka. SSI také obsahuje řídicí směrnice pro podmíněné funkce a směrnice pro volání externích programů. Podporuje to Apache, LiteSpeed, nginx, IIS stejně jako W3C skládačka.[1] Má své kořeny v NCSA HTTPd.[2]
Aby webový server rozpoznal SSI povoleno HTML soubor, a proto proveďte tyto pokyny, měl by název souboru končit speciální rozšíření, ve výchozím stavu .shtml
, .stm
, .shtm
, nebo, pokud je server nakonfigurován tak, aby to umožňoval, nastavte prováděcí bit souboru.[3]
Design
Jako jednoduchý programovací jazyk podporuje SSI pouze jeden typ: text. Své regulační tok je poměrně jednoduchý, volba je podporována, ale smyčky nejsou nativně podporovány a lze je provést pouze rekurzí pomocí include nebo using Přesměrování HTTP.[A] Jednoduchý design jazyka usnadňuje učení a používání než většina skriptovacích jazyků na straně serveru, zatímco složité zpracování na straně serveru se často provádí pomocí jeden z programovacích jazyků bohatších na funkce. SSI je Turing dokončen.[4]
SSI má jednoduchou syntaxi: <!--#directive parameter=value parameter=value -->
. Direktivy jsou umístěny v komentářích HTML, takže pokud SSI není povoleno, uživatelé neuvidí direktivy SSI na stránce, pokud se nedívají na její zdroj. Syntaxe neumožňuje mezery mezi úvodním znakem „<“ a direktivou. Výukový program Apache pro SSI stanoví, že formát vyžaduje mezeru před znakem „->“, který prvek zavře.[5]
Příklady
Webová stránka obsahující denní nabídku by mohla obsahovat nabídku umístěním následujícího kódu do souboru webové stránky:
<!--#include virtual="../quote.txt" -->
S jednou změnou quote.txt
soubor, všechny stránky, které soubor obsahují, zobrazí nejnovější denní nabídku. Zahrnutí není omezeno na soubory a může to být také textový výstup z programu nebo hodnota systémové proměnné, například aktuální čas.
Směrnice
Běžný
Níže jsou uvedeny směrnice SSI z doby NCSA HTTPd (90. léta). Jsou podporovány všemi implementacemi.[2]
Směrnice | Parametry | Popis | Příklad |
---|---|---|---|
zahrnout | souborový nebo virtuální | Toto je pravděpodobně nejpoužívanější směrnice SSI, která umožňuje obsah jednoho dokumentu transcluded v jiném. Soubor nebo virtuální parametry určují soubor (HTML stránka, textový soubor, skript atd.). Zahrnuje obsah jiného souboru nebo výsledek spuštění CGI skript. Pokud proces nemá přístup ke čtení souboru nebo spuštění skriptu, zahrnutí selže. „virtuální“ určuje cíl vzhledem ke kořenu domény, zatímco „soubor“ určuje cestu vzhledem k adresáři aktuálního souboru. Při použití "souboru" je zakázáno odkazovat na absolutní cesty. Vyšší adresáře (..) jsou obvykle zakázány, pokud nejsou výslovně nakonfigurovány. Dokumentace Apache doporučuje používat před „souborem“ přednost „virtuální“. | <!--#include virtual="menu.cgi" --><!--#include file="footer.html" --> |
vykon | cgi nebo cmd | Tato směrnice provede na serveru příkaz programu, skriptu nebo prostředí shellu. Parametr cmd určuje příkaz na straně serveru; parametr cgi určuje cestu k a CGI skript. PATH_INFO a QUERY_STRING aktuálního skriptu SSI budou předány skriptu CGI, jako výsledek by měl být použit výraz „exec cgi“ místo „zahrnout virtuální“. | <!--#exec cgi="/cgi-bin/foo.cgi" --><!--#exec cmd="ls -l" --> |
echo | var | Tato směrnice zobrazuje obsah zadaného HTTP proměnná prostředí. Proměnné zahrnují HTTP_USER_AGENT, LAST_MODIFIED a HTTP_ACCEPT. | Vaše IP adresa je: |
konfigurace | timefmt, sizefmt nebo errmsg | Tato směrnice konfiguruje formáty zobrazení pro datum, čas, velikost souboru a chybovou zprávu (vrácena, když selže příkaz SSI). | <!--#config timefmt="%y %m %d" --><!--#config sizefmt="bytes" --><!--#config errmsg="SSI command failed!" --> |
flastmod a fsize | souborový nebo virtuální | Tyto směrnice zobrazují datum, kdy byl zadaný dokument naposledy upraven, nebo velikost zadaného dokumentu. Soubor nebo virtuální parametry určují dokument, který se má použít. Parametr souboru definuje dokument jako relativní k cestě k dokumentu; virtuální parametr definuje dokument jako relativní ke kořenu dokumentu. | <!--#flastmod virtual="index.html" --><!--#fsize file="script.pl" --> |
Kontrolní směrnice
Směrnice řízení jsou později přidány do SSI. Zahrnují všudypřítomné řízení toku if-elif-else-endif a psaní proměnných i exotičtější funkce, jako jsou smyčky, které se nacházejí pouze v některých implementacích.
Směrnice | Parametry | Popis | Příklad | Nalezen v |
---|---|---|---|---|
| expr | The pokud prohlášení. Používá se pro testy stavu, které mohou určovat a generovat více logických stránek z jedné fyzické stránky. elif je zkratka pro vnořené else-if. jiný a endif nepřijímat parametry.Syntaxe výrazů se mezi implementacemi liší. Obvykle jsou podporovány existence proměnných a kontroly rovnosti / regulárního výrazu. Skládačka místo toho používá výrazy rozdělené na více atributů.[1] | <!--#if expr="${Sec_Nav}" --><!--#include virtual="secondary_nav.txt" --><!--#elif expr="${Pri_Nav}" --><!--#include virtual="primary_nav.txt" --><!--#else --><!--#include virtual="article.txt" --><!--#endif --> | Všudypřítomný. |
soubor | var, hodnota | Nastaví hodnotu proměnné SSI. Apache poskytuje další parametry pro kódování.[6] | <!--#set var="foo" value="bar" --> | Apache[6], Nginx[7] |
printenv | Tato směrnice vydává seznam všech proměnných SSI a jejich hodnot, včetně environmentálních a uživatelem definovaných proměnných. Nemá žádné atributy. | <!--#printenv --> | Apache[6] |
Viz také
Poznámky
- ^ Přesto se nachází v některých implementacích, včetně Jigsaw.
Reference
- ^ A b „Příkazy SSI“. W3C. Citováno 24. března 2019.
- ^ A b „Zahrnuje stranu serveru (SSI)“. Výukový program NCSA HTTPd. Archivovány od originál dne 3. března 1997. Citováno 24. března 2019.
- ^ "Konfigurace vašeho serveru pro povolení SSI". Výukový program Apache: Úvod do serverové stránky zahrnuje. Softwarová nadace Apache. Citováno 24. června 2015.
- ^ „Na straně serveru je Turingův stroj, Jan Schejbal“. Janschejbal.de. Citováno 2012-12-06.
- ^ „Základní směrnice a syntaxe SSI“. 2018-02-09. Citováno 2018-02-09.
- ^ A b C "mod_include". Apache HTTP Server. Citováno 25. března 2019.
- ^ „ngx_http_ssi_module“. nginx.org. Citováno 25. března 2019.
externí odkazy
- Odkaz na jazyk z implementací:
- Apache: Apache mod_include Reference. Směrnice volá „prvky“.
- Nginx: Modul ngx_http_ssi_module. Směrnice volá „příkazy“.
- NCSA HTTPd: Původní reference NCSA HTTPd SSI. Směrnice volá „příkazy“.
- Skládačka W3C: Na straně serveru Zahrnout příkazy. Směrnice volá „prvky“. Vysoce rozšířené s servlety, JDBC, HTTP cookie a smyčky.
- Návody: