Jesper Tverskov, 3. februar 2001
Server Side Include er et vigtigt redskab i en webprogrammørs værktøjskasse. Alligevel er SSI næsten ukendt for de fleste nybegyndere. Denne artilel fortæller alt, du behøver at vide for at komme igang.
SSI handler først og fremmest om at genbruge indholdet i én fil, f.eks. tekst, grafik eller html-kode, i én eller flere andre websider. Det betyder, at menusystemet kun findes i én fil, eller at f.eks. top- og bundtekst, eller alt andet der skal genbruges flere steder, kun findes i én fil. De andre sider inkluderer denne ene fil. Forandres kildefilen, er den tilsvarende information på alle sider, der inkluderer kildefilen, samtidigt opdateret.
SSI er små kommandoer, der indsættes på en hjemmeside, en metode til at kommunikere direkte med den webserver, hvor dine hjemmesider ligger. SSI var oprindeligt en afart af CGI-programmering, men SSI i sin enkleste form kræver ikke programmering. SSI kan opfattes som en smutvej til at udnytte ressourcer på webserveren uden brug af egentlig programmering.
SSI anvender en snedig udgave at HTML's kommentár-tag til at kalde serveren. Samtidigt skal du fortælle serveren, at den skal lede efter disse specielle kommentár-tags. Derfor skal html-dokumenter, der indeholder SSI, have filtypen shtml, så serveren ikke behøver at tjekke alle html-filer før de sendes til browseren. Serveren kan evt. være sat op til også at tjekke andre filtyper f.eks. shtm eller stm.
Det er blot at indsætte HTML-tag'en for kommentar i din webside på følgende måde, enten:
<!--#Include file="minfil.txt" -->
eller
<!--#include virtual="minfil.txt" -->
I første eksempel skal stien angives relativt i forhold til det dokument koden er indsat i, og i det andet eksempel skal stien angives relativt i forhold til dit websites rod. Den inkluderede fils type kan være næsten hvad som helst, men typisk txt eller htm.
SSI var oprindeligt meget andet end at inkludere filer. En smutvej til at kalde funktioner i serveren, f.eks. systemets dato, tid, html-dokumentets filnavn, angivelse af dokumentets sti, "sidst opdateret", osv. Det er dog evnen til at inkludere filer, der i dag næsten er synonymt med Server Side Include .
SSI burde være for begyndere, fordi SSI er den helt grundlæggende metode til at lave effektive hjemmesider, der er hurtige at lave og lette at vedligeholde og videreudvikle. Men der er et par hurdler, der gør, at SSI ikke er det første, begynderen kaster sig over.
SSI kræver, at du har en webserver kørende, når du laver og tester dine hjemmesider. De fleste åbner blot deres hjemmesider som filer i browseren. SSI kræver, at hjemmesiden sendes til browseren af en server. Det lyder voldsomt med egen webserver, men der følger faktisk en lille personlig webserver, der hedder PWS (Personal Webserver), med Windows 98 og med f.eks. Windows 2000 Professionel. Der er mange andre muligheder, f.eks. Internet Information Server, IIS, i Windows NT, eller du kan eksperimentere med mulighederne i styresystemet LINUX.
En anden årsag til, at SSI ikke er så udbredt blandt begyndere, er, at gratis webhoteller, som dem Tele Danmark stiller til rådighed for folket, ikke tillader brug af SSI, fordi kald til serveren fra en hjemmeside kræver skærpet sikkerhed. Skal du bruge SSI, kræver det altså et "rigtigt" webhotel, der skilter med, at du kan bruge SSI. Kig efter formuleringer af typen "egne CGI-scripts", "ASP" eller lignende. Et sådant webhotel koster i 2001 fra ca. 500 kr. om året og typisk over det dobbelte.
Den tredje årsag til, at SSI kun er for de indviede, er, at fordi der er tale om kald til serveren, så bliver koden i html-dokumentet, der kalder serveren, erstattet med den fil der skal inkluderes, før den sendes til browseren. Det betyder, at når du i browseren på Internettet studerer et flot websteds kildekode, så er der intet, der afslører, at der er brugt SSI. Derfor bliver du ikke inspireret til at bruge SSI ved at kigge i andres kildekode. Du ser i stedet det, der blev inkluderet. Nybegyndere opdager altså ikke, at stort set alle professionelle hjemmesider på nettet bruger SSI flere gange på næsten hver eneste side.
SSI er en fnugagtig biting ved CGI-programmering. ASP, Active Server Pages , kan uendeligt meget mere end SSI alene. Men både SSI og ASP handler om kald til serveren direkte fra kode indsat i en almindelig webside. For at fortælle serveren at den skal kigge efter SSI eller ASP, skal siden typisk have typebetegnelsen shtml eller asp. I begge tilfælde erstatter serveren SSI-koderne og ASP-koderne i html-dokumentet med det serveren skal udføre. Det er det serverbehandlede dokument, der sendes til browseren. I kildekoden kan du altså hverken se spor af SSI-kode eller ASP-kode.
Det er interessant, at SSI's måde at inkludere en fil er så overlegen, at ASP har overtaget SSI på dette punkt. Når du i ASP skal inkludere en fil, bruger du SSI.
SSI, dvs. at inkludere en fil dynamisk i andre filer på en sådan måde, at alle filer opdateres, når kildefilen opdateres, er så vigtig, at det selvfølgelig er irriterende, at metoden kun virker, når siderne sendes til browseren af en webserver. Derfor har Microsoft udviklet en alternativ metode, der anvendes i webbyggerprogrammet Frontpage , der er meget udbredt blandt nybegyndere. Frontpage's "SSI" er en rigtig omgang forvirrende snyd.
Når du i Frontpage 2000 vælger menupunktet "Indsæt/Komponent/Inkluderet side", indsættes en fil næsten som om, det var SSI; og koden der indsættes ligner SSI-koden næsten til forveksling. De inkluderede sider vises korrekt i alle browsere både med og uden brug af webserver, og derfor vises siderne også korrekt på de gratis webhoteller, hvor ægte SSI-kald til webserveren ikke er tilladt. Genialt eller hvad?
Problemet med Frontpage's snyde-SSI er, for det første, at den indsatte fil ikke opdateres 100 pct. automatisk, hvis du retter i kildefilen. Du er nødt til i Frontpage at åbne og opdatere alle de filer, kildefilen er indsat i. Det sker dog næsten automatisk ved blot at åbne og gemme filerne på ny. Med ægte SSI sker det hele 100 pct. automatisk, dvs. du behøver blot at rette i kildefilen.
Det andet store problem med Frontpage's snyde SSI er, at det kun er Frontpage , der kan holde styr på automatisk at opdatere filerne, når de åbnes. Kun Frontpage kan opdatere den indsatte kode. Det betyder, at et website lavet i Frontpage, kun kan vedligeholdes med Frontpage . Du kan rette i alle filer med en hvilken som helst editor, men filer med inkluderede filer er først indbyrdes opdateret og hænger sammen, når de har været åbnet i Frontpage!
Hvis du øverst på alle sider definerer en variabel, der har sidens navn som værdi, kan alle filer, der inkluderes, bruge IF/ELSE og teste på denne variabel, om de evt. skal foretage sig noget ud over det sædvanlige. Lad os tage en inkluderet menu som eksempel.
Lad os antage at menuen ligger i filen menu.txt. Når menu.txt inkluderes på en side, kan den gøre det på en sådan måde, at menupunktet, der svarer til den side, menuen indsættes på, automatisk forandres fra et link til blot at være tekst med en anden farve. Det reducerer chancen for, at du ved en fejl klikker på et link til den side, du allerede befinder dig på.
Copyright © 2001 Klapmusen.dk
The document is made to be a resource. Use it. Link to it. The document will be maintained, the URL is stable.
Opdateret: 04-04-2002 16:29
Status:
Revision:
Debatten er lukket. Send mig en mail.