Cosa significa CGI?
CGI è lacronimo della frase Common Gateway Interface.
Dopo averci pensato a lungo e duramente, ho concluso che non esiste
una traduzione italiana decente: interfaccia comune di collegamento
è un mostro. Perciò spenderò interi paragrafi per spiegare quello
che gli Inglesi riescono a dire in tre parole.
Un sito web composto di sole pagine HTML e di immagini è un sito
statico, sempre uguale a se stesso. Il CGI è un modo per
rendere il sito dinamico, adattando le pagine alle richieste
dellutente. Per capire la differenza, consideriamo il sito
di presentazione di unazienda: conterrà una home page con
una bella grafica, altre pagine di informazioni, forse anche un
catalogo di prodotti. Tutte le pagine sono state realizzate dal
webmaster con un editor HTML (oppure con un semplice editor testuale,
per i duri e puri), le immagini sono state disegnate o acquisite
da fonti esterne, e il tutto pubblicato sul sito. Una volta pubblicata
una pagina, lunico modo per cambiarla è di buttare giù dal
letto il webmaster e farlo lavorare.
Pensate adesso ad un motore di ricerca: contiene poche
pagine, al limite anche solo quella principale dove scrivete le
parole da cercare. Però, a seconda della ricerca che effettuate
quel sito può farvi vedere milioni di pagine, ognuna diversa dallaltra.
Nessuno si è messo a scriverle una per una. Tutte le pagine dei
risultati sono generate al volo, partendo da una pagina generica
che viene riempita con i risultati della ricerca, grazie ad un programma
CGI scritto appositamente.
Un altro esempio è quello dei classici form-mail, dove voi potete
riempire una form che poi spedirà un e-mail ad un amico o ad un
destinatario predefinito. In questo caso la pagina generata è quella
di conferma, e non occorre che sia troppo diversa ogni volta (potrebbe
anche essere sempre uguale). Ma limportante è che essa non
viene direttamente dal server web, ma dal programma CGI fatto partire
dal form, che si è occupato nel frattempo di spedire le e-mail.
Altri esempi sono i sondaggi, i siti di commercio elettronico, tutte
le possibili forme di ricerca (strade, telefoni, cataloghi di vendita),
forum di discussione, contatori, eccetera.
La parola CGI sta ad indicare il meccanismo che orchestra questo
balletto: form html, server web, programma, pagina di risposta,
tutti collaborano per far funzionare le cose come devono. In questo
corso impareremo ad usare questo meccanismo e a scrivere i programmi
che ne sono l'anima nascosta.
Conoscenze e attrezzature richieste:
Per poter seguire questo corso, occorre che abbiate già alcune conoscenze
basilari che devo dare per scontate:
- dovreste saper fare una pagina html, anche molto semplice, ma
con particolare attenzione ai form. Gli editor visuali vanno bene,
ma i miei esempi saranno in codice html e occorre che sappiate di
cosa sto parlando.
- dovreste avere delle basi di programmazione, preferibilmente in
Perl. In realtà i programmi CGI possono essere scritti in qualunque
linguaggio, ma il Perl detiene quasi il monopolio in questo campo
grazie alle sue caratteristiche.
In questo corso userò quasi esclusivamente script Perl, e forse
ogni tanto delle routine in C. Comunque, vi darò tutte le indicazioni
necessarie per usare il linguaggio che preferite nel caso non conosciate
il Perl o non aveste voglia di impararlo. Se invece ne avete
voglia, oppure dovete rinfrescarvi la memoria, su questo stesso
sito troverete anche il corso di Perl (indovinate chi ne è lautore...),
a cui potrete fare riferimento.
Inoltre sarà molto conveniente installare sul proprio
computer un server web. Sì, avete capito bene, si tratta di trasformare
il vostro PC in un server capace di ospitare un sito. In effetti
non è che sia chissà cosa, si tratta solo di installare il programma
che fa da server e di configurarlo.
In questo modo, potrete provare le vostre applicazioni CGI esattamente
come se fossero su un server remoto, e una volta che tutto funziona
bene sul vostro PC, funzionerà bene anche sul sito vero e proprio.
Nella prossima lezione partiremo proprio da questo, cioè installeremo
il server web. Si tratterà del server Apache, gratuito e disponibile
per molti sistemi operativi. Per inciso, è il server grazie al quale
funzionano la maggior parte dei siti Internet, come ad esempio Yahoo!
Torna all'indice Generale del corso di Corso di CGI di Software Planet