< CGI - Common Gateway Interface >


  [Inledning] [Programeringsspråk] [CGI- program och Webservern] [Egna CGI- program]


  Inledning


Då du kontaktar din webserver med din webläsare och begär ett dokument, retunerar webservern motsvarande HTML-fil som sedan visas hos dig, i din webläsare. Detta brukar kallas för den statiska modellen.

Men webservern kan göra en sak till, den kan "prata" med andra program på datorn som webserverprogrammet är installerat på.
Det är detta som är CGI- modellen eller den dynamiska modellen.

Detta kan t.ex. användas för att servern skall kunna ta emot frågor, skicka dem till en databas på datorn och sedan retunera resultatet till en  webläsare. För att webservern skall kunna komunicera med andra program använder den sig av CGI- Common Gateway Interface.

CGI är ett "gränssnitt" (anpassningsprogram) som ser till att information kan föras från webservern till andra program, och vice versa. CGI talar alltså om hur en webserver och ett program, som tex. genererar hemsidor, skall kommunicera.



CGI fungerar kortfattat på följande sätt:

  • Du begär att få köra ett visst program ("CGI-program") på webservern, via din webläsare, med begäran kan du skicka information som skall behandlas av programet.

  • Webservern tar emot din begäran, startar "CGI-programet", och skickar vidare den information du sänt till detta via CGI.

  • "CGI-programet" utför sina instruktioner, och genererar "utdata", som skickas tillbaka till webservern igen, via CGI.

  • Webservern skickar vidare den nya informationen, till din webläsare.



 

  Programeringsspråk


De program som finns på datorn där webservern är installerad, och som kan anropas av användaren via webläsaren, kallas alltså för CGI-program. CGI- programen är oftast skrivna i ett "högnivåspråk". Vilket programeringsspråk beror på vilken dator, operativsystem och vilken serverprogramvara man använder.

De vanligaste programeringsspråken som används för att skapa CGI- program med är C/C++ och Perl. Förkortningen Perl står för Practical Extraction and Report Language. Andra språk som används är tex Visual Basic, Phython eller Shell- Script.

Perl är det mest använda programeringsspråket och det beror på att det är ett snabbt scriptspråk med "färdiga" instruktioner för sträng och databas hantering. Detta plus att programet är ett "högnivåspråk" gör Perl extra lämpligt för CGI programering.




 

  CGI- program och Webservern


Det är inte säkert att den systemansvarige eller Internet leverantören tillåter att man skapar egna CGI- program, på den webserver där man har HTML- sidorna. Om man däremot äger en egen webserver så är ju detta ett mindre problem.

Oftast tillhandahåller dock leverantören färdidiga CGI- script, som man kan använda sig av, kontrollera med leverantören eller den systemansvarige. Det finns nämligen en del risker förknippade med CGI. Dessa 'risker' har med resurstilldelning och säkerhet att göra.

Resurser:

CGI- program kräver en del resurser av datorn som kör webserverprogrammet. Ett CGI- program körs av severn då en användare begär detta. Detta innebär att datorn som kör webservern skall starta ett nytt program som skall tilldelas resurser i form av minne och processorkraft.

Om CGI- programet inte är tillräckligt "effektivt" kommer varje exikvering att belasta servern och göra den långsam. Oftast kan flera användare köra ett CGI- program samtidigt, detta gör att belastningen ökar ännu mer. I värsta fall kan servern krascha p.ga. resur brist.

Säkerhet:

Det gäller noga att planera sina CGI- program och noga sätta sig in i hur det hela fungerar. För om det blir fel kan säkerhetshål uppkomma som gör det möjligt för vem som helst att missbruka datorn som kör webservern. Det kan vara en bra idé att kontakta den systemansvarige för att kontrollera att det inte finns luckor i systemet.




 

  Egna CGI- program


Det finns olika sätt att anropa ett CGI- program från en browser, och två av dessa är av intresse då man skapar egna CGI- program. Den ena metoden kallas för "GET" dvs. du anropar ett program och begär ett svar. Den andra anropsmetoden kallas "POST" och är intressant i de fall man använder formulär. Denna metod skickar innehållet i formulärfälten "inkapslade" i anropsmedelandet.

Skillnaden mellan dessa båda ligger, förutom att argumenten överförs på olika sätt, i att informmationen blir tillgänglig på olika ställen i det mottagande CGI- programmet. Djupare än så här går vi inte in i CGI programeringens värld. Vi hoppas att du fått lite inblick i vad CGI är för någonting och vad man kan använda det till.

Men för den som vill skapa egna CGI- program kan följande litteratur rekomenderas :

  • CGI- programering av Niklas Frykholm. I boken ingår också en kurs i Perl- programering. (ISBN 91-636-0472-8)

  • HTML Java och CGI av Erik Ladd och Jim O´Donnel, är en anna bok som är bra. (ISBN 0-13-921446-1)

Dessutom finns mägnder av information på nätet, här är några intressanta länkar: