CGI

Wikipedia
Loikkaa: valikkoon, hakuun

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

CGI syntyi Rob McCoolin, John Franksin, Ari Luotosen, George Phillipsin ja Tony Sandersin keskustelujen www-talk-postituslistalla 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) Kun tätä URL:ia haetaan selaimella, vastaavaa ohjelmaa (wiki.cgi) kutsutaan. Ohjelman tuottama tuloste kerätään web-palvelimella ja lähetetään asiakasohjelmalle (selaimelle) HTTP-protokollan vaatimien otsikkotietojen jälkeen.

CGI on kieliriippumaton. Webin yleistyessä CGI-ohjelmien tekoon käytettiin useimmin Perl-kieltä. Erilaiset komentosarjakielet, kuten Python, Ruby, PHP ja Tcl ovat edelleen suosituimpia.

Koska CGI-tekniikka käynnistää joka kerta uuden ohjelman suoritettavaksi, palvelimen kuormitus kasvaa nopeasti. Tämä vuoksi on kehitetty edelleen tehokkaampia tekniikoita, kuten mod_perl ja ASP, joissa komentosarjakieli on sisällytetty web-palvelimeen.

CGI PHP:llä[muokkaa | muokkaa wikitekstiä]

PHP pystyy toimimaan CGI:n GET ja POST metodien kanssa. POSTin kanssa on tullut myös FILES metodi jota käytetään tiedostojen siirtoon HTTP:llä.

Esimerkki

<html>
<body>
<?php
echo "Kirjoitit: ".$_POST['viesti']."<br>";
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="viesti" size="50">
<input type="submit" value="LÄHETÄ">
</form>
</body>
</html>

Sama ASP:llä[muokkaa | muokkaa wikitekstiä]

<html>
<body>
<%
Dim viesti
Response.Write("Kirjoitit: " & Request.Form("viesti") & "<br>")
%>
<form action="<% Response.Write(Request.ServerVariables("URL")) %>" method="post">
<input type="text" name="viesti" size="50">
<input type="submit" value="LÄHETÄ">
</form>
</body>
</html>

Katso myös[muokkaa | muokkaa wikitekstiä]

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]