Cos’è la CGI?

La Common Gateway Interface (CGI) è un’interfaccia di server web che consente lo scambio di dati standardizzato tra applicazioni esterne e server. Appartiene alle prime tecnologie di interfaccia di Internet e finora è stata ampiamente utilizzata. Con la CGI le pagine HTML non devono essere completamente disponibili sul server, vengono invece create in maniera dinamica non appena un utente invia una richiesta adeguata tramite sito web.

Funzioni e uso

Quando un utente inserisce una voce in un sito web questi dati non vengono inoltrati direttamente al server, ma devono prima essere modificati. Tale elaborazione viene effettuata attraverso un software esterno (per esempio uno script CGI) e non direttamente tramite server web. Tramite l’interfaccia standardizzata CGI il programma trasmette i dati al server che può quindi visualizzare le informazioni appena create in HTML. I programmi CGI si trovano solitamente in una cartella dedicata sul server web.

Lo script CGI può essere scritto in diversi linguaggi di programmazione. La Common Gateway Interface fa in modo che server web e script possano comunicare tra loro indipendentemente dal linguaggio utilizzato.

Casi di impiego della Common Gateway Interface

  • Carrelli: se un cliente inserisce dei prodotti nel suo carrello d’acquisto online, queste informazioni vengono elaborate dallo script CGI e poi inviate al server.
  • Commenti: l’utente compila un campo commenti. Cliccando su “Invia” il suo testo viene trasmesso allo script CGI che a sua volta lo inoltra al server.
  • Formulari: anche nel caso di moduli online, per esempio candidature o messaggi, i dati inseriti vengono prima elaborati dalla Common Gateway Interface e di seguito trasmessi al server.
  • Statistiche relative ai siti web: quando sui siti web vengono visualizzati dati sul traffico, la tecnologia sottostante utilizza in molti casi la CGI.
  • Server Side Include: con le Common Gateway Interface è possibile caricare dinamicamente il contenuto del testo nel sito web.
  • Test di software: gli sviluppatori possono utilizzare gli script CGI per testare la funzionalità di applicazioni online esterne per siti web tramite il browser.

Anche un utente senza conoscenze di programmazione riconosce semplicemente dall’URL se viene inserito uno script. Attraverso una determinata stringa, che viene codificata, il server riceve tutte le informazioni rilevanti dallo script. Si può distinguere fra tre modalità di trasmissione delle informazioni:

  • QUERY_STRING: questo metodo si utilizza soprattutto per le richieste degli utenti.
  • PATH_INFO: tramite questo metodo vengono trasmesse informazione contestuali del sito web.
  • Stdin: in questo modo vengono elaborati altri input dell’utente.

Vantaggi e svantaggi della Common Gateway Interface

Nonostante sia datata, la Common Gateway Interface è tra le interfacce più utilizzate nello sviluppo di siti web. Questa tecnologia, oltre a molti vantaggi, presenta anche degli svantaggi.

Vantaggi

La CGI è un sistema semplice ed efficace per generare contenuti dinamici per i siti web. Allo stesso tempo le applicazioni CGI non devono essere salvate sul server, in modo che nessuna risorsa venga utilizzata inutilmente. Dal punto di vista pratico un elemento a favore della Common Gateway Interface è la compatibilità con molti linguaggi di programmazione e di conseguenza la facile integrazione nelle infrastrutture esistenti. Non da ultimo, essendo gratuita, non implica costi di utilizzo ed è subito fruibile per ogni sviluppatore.

Svantaggi

Uno dei principali punti deboli della Common Gateway Interface è che sebbene il carico del server sia ridotto, i tempi di risposta dell’applicazione CGI sono a volte molto lunghi, perché il programma deve essere riavviato a ogni nuovo inserimento. Soprattutto per i siti web ad alto traffico può diventare un problema il fatto che i server supportino spesso solo un determinato numero di applicazioni CGI e che le ulteriori richieste in entrata vengano messe in attesa o respinte.

La Common Gateway Interface, come anche altre interfacce, può rappresentare un rischio per la sicurezza se non viene impostata una protezione adeguata. Tramite CGI i programmi esterni hanno teoricamente un accesso completo ai dati del server web. Devono quindi essere definite chiare limitazioni di modo che uno script CGI non possa causare danni.

Alternative alla Common Gateway Interface

Negli scorsi anni sono state sviluppate molte altre tecnologie d'interfaccia basate sulla CGI che cercano però di eliminare il suo principale punto debole, ossia il fatto che per ogni richiesta di un utente debba essere ricaricato uno script.

ASP (Active Server Pages): ASP è stato inizialmente sviluppato da Microsoft per i suoi server, ora però è disponibile per molti server. L’interprete ASP è integrato nei server web, quindi non è necessario avviare un nuovo processo per il suo utilizzo. I comandi ASP possono essere scritti direttamente nelle pagine HTML. Come la CGI anche ASP può essere utilizzato con diversi linguaggi di programmazione.

PHP: PHP, assieme a Perl, appartiene ai linguaggi di scripting più diffusi nel web. Molto di ciò che può essere raggiunto da uno script CGI è realizzabile anche con PHP. L’interprete PHP però è integrato direttamente nei server web.

ColdFusion: ColdFusion è stato inizialmente sviluppato per Windows, ora però è disponibile anche per molte piattaforme Unix. L’interprete ColdFusion è integrato nei server web, come avviene nelle alternative CGI già presentate. Le pagine HTML possono essere modificate con i tag presenti o propri elementi di controllo. Inoltre ColdFusion offre agli sviluppatori una serie di funzionalità standard.

FastCGI: con FastCGI le richieste dinamiche dei server web possono essere modificate direttamente tramite un’interfaccia Perl, senza dover avviare un nuovo processo. FastCGI è ampiamente compatibile con CGI e viene supportato da molti server web.


Abbiamo una proposta per te:
Web hosting a partire da 1 €/mese!

Dominio gratis
Certificato SSL Wildcard incluso
Assistenza clienti 24/7
A partire da 1 €/mese IVA escl. per un anno,
poi 8 €/ mese IVA escl.