Corso di CGI

Introduzione

 

Cosa significa CGI?

CGI è l’acronimo 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 dell’utente. Per capire la differenza, consideriamo il sito di presentazione di un’azienda: 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, l’unico 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 dall’altra. 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 l’importante è 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 è l’autore...), 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