Scarica la guida in formato .zip

Script CGI

Parleremo della CGI (Common Gateway Interface), ma prima di tutto devi sapere alcune cose sulle problematiche client/server. In altre parole devi sapere come i server ed i client si parlano l' un l' altro. Vediamo...

Conversazioni tra un client ed un server

Quando 'clicchi' su un link contenuto all' interno di una pagina web, forse non sai che il tuo browser inizia a chiaccherare con il server puntato da quel link. Un client e' qualsiasi programma software che puo' chiedere qualcosa ad un server (spesso anche lo stesso computer dove sta girando il client e' considerato client). Percio' il web browser e' un client. Un server e' qualsiasi programma software che gira su un computer collegato ad una rete in grado di rispondere alle richieste fatte dai client (spesso anche lo stesso computer dove gira il server e' considerato un server). Quando digiti un URL (Uniform Resource Locator) nel campo location del tuo browser, o quando clicchi su un link (link od URL sono la stessa cosa), stai puntando ad una certa pagina web contenuta all' interno di un dato computer. Un server web e' un programma software che gira ininterrottamente su una macchina, in attesa di richieste da soddisfare. Un server e' chiamato anche demone. Quando il server riceve una richiesta, cerca di soddisfarla. In altre parole, quando clicchi su un link, stai chiedendo (beh, e' il tuo browser che effettua la richiesta) una pagina web (documento). Il server riceve la tua richiesta e ricerca quella pagina, e, quando la trova, la consegna al browser web. I client ed i server parlano usando un particolare linguaggio: HTTP. HTTP sta per HyperText Transfer Protocol. Vediamo quest' URL: http://www.anyserver.com/anydirectory/anypage.html. Ci sono 4 parti:

  1. Il nome del metodo (o servizio)
  2. Il nome del server
  3. Un path opzionale
  4. Il nome della pagina web

Il nome del metodo puo' essere HTTP (web), FTP (FTP), NEWS (newsgroups), MAILTO (SMTP, Simple Mail Transfer Protocol, cioe' email) e cosi' via. Il nome del server indica il nome del computer dove si trova la pagina. Il path opzionale indica la directoty dove e' contenuta la pagina. Ed infine c'e' il nome della pagina.

Quando clicchi su http://www.anyserver.com/anydirectory/anypage.html, prima di tutto il tuo client (il browser web) attiva una connessione tra il tuo computer ed il server www.anyserver.com, richiedendo una pagina web di nome anypage.html. A questo punto il server riceve la richiesta e ricerca la pagina. Se il server la trova, la consegna al client, altrimenti invia un messaggio di errore molto noto: '404 not found'. Infine il server chiude la connessione.

L' HTTP e' un protocollo stateless, che significa che ogni richiesta fatta dal tuo client al server, richiede una nuova connessione. Ogni oggetto contenuto all' interno di una pagina web richiede una nuova connessione (a differenza di altri protocolli come FTP o Telnet, dove il client stabilisce una sola connessione e puo' effettuare parecchie richieste durante quella connessione). Percio' quando scarichi una pagina web che contiene parecchie immagini per esempio, il tuo client deve stabilire una nuova connessione per ogni oggetto che trova leggendo la pagina. Bene, durante una nuova richiesta il server non e' in grado di sapere nulla della precedente richiesta, e, difatti, non sa neppure chi ha fatto la precedente richiesta. Il nuovo protocollo HTTP (HTTP-NG o HTTP Next Generation, permette una connessione per piu' richieste, cosi', per esempio, puoi leggere una pagina web stabilendo solo una connessione. Cosi' una pagina web e' scaricata piu' velocemente). Dunque il server web e' solo un programma che gira ininterrottamente aspettando delle richieste. Quando una richiesta viene soddisfatta e la connessione viene chiusa, il server e' nuovamente pronto per nuove richieste. In altre parole il server web e' una specie di cameriere che obbedisce agli ordini dei client. Comunque il tuo browser puo' richiedere documenti HTML, immagini, suoni, video o...script. Solo che uno script non viene ricevuto ma viene ESEGUITO. Ed ora vediamo cosa sono questi script CGI. Uno script e' un programma che funge da interfaccia tra un client, un server web, il sistema operativo, le periferiche hardware o anche altri server. Per esempio, supponi che tu voglia effettuare ricerche all' interno di un database. Supponi di volerle fare utilizzando una interfaccia web (una form per esempio). Bene, il server che offre tale servizio, ha bisogno sicuramente di uno script CGI, infatti deve ricevere la tua richiesta (che di solito e' scritta usando il linguaggio umano) e tradurla secondo le regole del linguaggio di quel database. Pensa ad un motore di ricerca come Altavista per esempio. Lo script CGI riceve la tua interrogazione e la traduce secondo le regole del linguaggio del database di Altavista e ricerca il documento che hai richiesto. Quando trova qualcosa lo deve confezionare per mostrarlo all' interno di una pagina HTML (in altre parole, lo script CGI deve costruire una pagina web 'al volo' per mostrare i risultati della tua interrogazione).

Linguaggi usati

Puoi usare qualsiasi linguaggio di programmazione per costruire uno script CGI. Beh, ovviamente il linguaggio di programmazione che scegli deve essere supportato dal server. Per esempio, se il tuo server sta girando su un sistema Unix, potresti usare il linguaggio della shell Bourne, o potresti usare il linguaggio C. Se il tuo server sta girando su un Macintosh devi usare il linguaggio Applescript, e cosi' via. Comunque il linguaggio di programmazione piu' usato per scrivere degli script CGI e' sicuramente il PERL (PERL sta per Practical Extraction and Reporting Language).

Breve corso sulla CGI

Home

Copyright © 1998-99 M. Silvestri