CGI

Kohteesta Wikipedia
Loikkaa: valikkoon, hakuun
Tämä artikkeli kertoo www-tekniikasta. CGI on IT-alan palveluyritys. Clinton Global Initiative on Clinton Foundationin vuosittainen konferenssi.

Common Gateway Interface (CGI) on tärkeä Web-ympäristön tekniikka, jonka avulla selain voi välittää dataa palvelimella suoritettavalle ohjelmalle ja kuinka tuloste saadaan näkymään selaimessa. CGI määrittää standardin tähän datan välitykseen.

CGI syntyi Rob McCoolin, John Franksin, Ari Luotosen, George Phillipsin ja Tony Sandersin www-talk-postituslistalla käymien keskustelujen tuloksena vuonna 1993.lähde? NCSA:lla työskentelevä McCool teki standardin ensimmäisen version ja mallitoteutuksen NCSA HTTPd -palvelinta varten käyttäen tiedon välitykseen Web-palvelimen ja käynnistettävän prosessin välillä ympäristömuuttujia.

Web-palvelimen näkökulmasta CGI toimii siten, että tietyt URL-osoitteet on määritetty suoritettavaksi ajettavina ohjelmina (esimerkiksi http://www.example.com/wiki.cgi?page=etusivu) Kun tätä URL:ia haetaan selaimella, vastaavaa ohjelmaa (wiki.cgi) kutsutaan. Ohjelmalle annetut parametrit välitetään ympäristömuuttujassa. Ohjelman tuottama tuloste kerätään web-palvelimella ja lähetetään asiakasohjelmalle (selaimelle) HTTP-protokollan vaatimien otsikkotietojen jälkeen.

CGI on kieliriippumaton. Aluksi CGI:ssa käytettiin yleisesti Shell-skriptejä. Näitä on kuitenkin erittäin vaikea toteuttaa turvallisesti, joten Webin yleistyessä CGI-ohjelmien tekoon käytettiin useimmin Perl-kieltä. Erilaiset komentosarjakielet, kuten Python, Ruby, PHP ja TCL ovat edelleen suosituimpia.

Ongelmat ja seuraajat[muokkaa | muokkaa wikitekstiä]

Koska CGI-tekniikka käynnistää joka kerta uuden prosessin suoritettavaksi, ja tämä on useimmissa käyttöjärjestelmissä raskas operaatio, palvelimen kuormitus kasvaa nopeasti. Tämä vuoksi on kehitetty edelleen tehokkaampia tekniikoita, joissa komentosarjakieli on sisällytetty web-palvelimeen.

Näistä yksi ensimmäisiä oli Netscape NSAPI (Netscape Server Application Programming Interface) Netscape Enterprise Server -palvelinta varten. Open Market -yhtiö kehitti NSAPI:n kilpailijaksi FastCGI-tekniikan 1990-luvun puolivälissä. Tässä prosessi pysyy koko ajan käynnissä ja kommunikoi web-palvelimen kanssa Unix domain socketin kautta. Useat palvelimet tukevat tätä protokollaa. Tätä käytettäessä skripti on kirjoitettava tietyllä tavalla tukemaan palvelinta. Apachelle on olemassa mod_perl-moduuli, jolla Perl-skriptit saa siirrettyä palvelimessa toteutettavaksi. PHP:ta voi käyttää joko CGI-skriptien ajamiseen tai palvelimen moduulina.

Esimerkki CGI-ohjelmasta[muokkaa | muokkaa wikitekstiä]

Esimerkki CGI-ohjelmasta Perlillä[1]. Ohjelma on kirjoitettu Unix-ympäristöön. Ajattava ohjelma sijoitetaan tyypillisesti cgi_bin-nimiseen hakemistoon käyttäjän kotihakemistoon ja sille on annettava suoritusoikeudet. Lisäksi web-palvelimella on asetettava päälle käyttäjien CGI-ohjelmat.

#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "<html><body>Hello, world.</body></html>";

Katso myös[muokkaa | muokkaa wikitekstiä]


Lähteet[muokkaa | muokkaa wikitekstiä]

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]