SSI, Server Side Includes, är ett enkelt sätt att skapa en likformad webb-sajt och bygga upp webbsidor där man enkelt infogar standardiserade komponenter. Om man har en meny man vill infoga på flera webbsidor är det enkelt med SSI att ha menyn i en separat fil, som infogas i de andra sidorna i stället för att kopiera menyn till varje webbsida. Ändrar man menyn i den sparata filen, så ändras menyn i alla webbsidor som anropar den modulen.
SSI kräver intelligens och datorkraft på webbservern, eftersom webbservern vid varje HTTP-anrop måste tolka filen och se om några externa webb-moduler ska infogas. Det tar givetvis längre tid än att bara skicka en HTML-fil som svar på ett HTTP-anrop (ett klick i en webbsida).
SSI utvecklades på tidigt stadium i webb-historien och stöds av många olika webbservrar. Under åren har några extra kommandon utvecklats och denna version kallas Extended SSI eller X-SSI. Apache, den ledande webbservern, distribueras med stöd för X-SSI.
SSI består av en rad kommandon man infogar i sitt HTML-dokument. För att servern ska förstå att det inte bara är "vanlig" HTML i filen brukar man för SSI-HTML-sidor använda filtillägget ".shtml" i stället för ".html". Själva filen består av vanlig HTML-kod blandad med SSI-kommandon. Dessa infogas i HTML-kommentarer.
| Börjar med koden | Slutar med | |
| Vanlig HTML-kommentar | <!-- | --> |
| SSI-kod | <!--# | --> |
| Exempel: SSI inkludera modul | <!--#include virtual="filnamn.inc" | --> |
Det enklaste SSI-kommandot är kommandot man använder för att inkludera en annan fil. Det ser ut så här:
<!--#include virtual="filnamn.shtml" -->
Observera mellanslaget före avslutande "-->", det är mycket viktigt.
Det finns en rad olika SSI-kommandon för olika ändamål.
| Kommando | Förklaring |
|
IF |
Visa variabla delar av en HTML-sida. Kan styras av variabler (se nedan) |
| SET | Skapa en variabel (CGI- och miljödatavariabler finns fördefinierade) |
| ECHO | Visa värdet av variabel |
| EXEC | Kör CGI-program |
| FSIZE | Visa storlek på fil |
| FTIME | Visa senaste ändringstid på fil |
| PRINTENV | Skriv ut alla fördefinierade variabler för test eller felsökning |
SSI är det enklaste sättet att skapa en modulär webb med viss flexibilitet. Sidor kan enkelt underhållas, innehåll kan förändras beroende på webbläsare, besökares domän, tid på dygnet eller annan variabel. Möjligheten att programmera är dock begränsad. Tekniken att tolka kommandon gömda i vanlig HTML-kod har vidareutvecklats på många olika håll. En variant är Microsofts Active Server Pages, ASP. En annan är PHP 3.0, en mycket flexibel lösning som gör att man på ett enkelt sätt kan skapa avancerade lösningar med kopplingar till bland annat databaser och LDAP-kataloger.
Med Apache och MOD_PERL kan man infoga Perl-kommandon i HTML-kod.
Viktigt att komma ihåg är att all behandling av SSI-kommandon (ASP, PHP och andra liknande tekniker också) sker på serversidan, av själva webbservern och till den hörande moduler. Skilj detta från script som behandlas på klienten, webbläsaren. Javascript-funktioner i webbsidor behandlas normalt av webbläsaren.