|
CGI e Programmazione Server SideUna variante del protocollo http (v. Web Server) permette di indicare nel comando get un file eseguibile. Ad esempio, invece di richiedere al server un file html chiediamo un file bat, pl, exe1. Il server in questo caso non legge e invia il file - attività abbastanza inutile - ma lo esegue, ne cattura l'output (stdout) e lo invia al richiedente. In pratica l'output del programma viene inviato direttamente al browser che lo ha invocato. Ovviamente tale output dovrà essere espresso in html. Il file bat2 che segue è un'esempio di programma cgi2. L'esecuzione si ottiene indicando come url "http://www.ar-ent.net/prova.bat":
L'equivalente programma 'c' richiesto con "http://www.ar-ent.net/prova.exe":
La tecnica, pur concedendo quando dovuto al minimalismo di questi esempi, è assolutamente elementare. Non esiste alcun problema significativo nello sviluppo della programmazione cgi. È alla portata di qualunque programmatore. Risulta invece meno semplice realizzare una programmazione ordinata ed efficiente. 1 Cioè altro file eseguibile. 2 Ovviamente nessuno potrebbe pensare di combinare molto con i files bat. Questi, per motivi inspiegabili, non hanno fatto significativi passi avanti da quanto era disponibile in dos 2.0. Il fatto che all'alba del nuovo millenio un sistema operativo come nt 4.0 proponga come scripting i files bat resta uno dei misteri dell'informatica attuale. Nei sistemi Unix esistono, da decenni, intere famiglie di script, tutti in grado di gestire una richiesta Web. Il tool più popolare è sicuramente il linguaggio Perl. 2 In realtà questo script non funziona in perchè i simboli '<' e '>' nei bat sono riservati e l'idiozia del linguaggio non permette di usarli per altro scopo. Il mio scopo è quello di mostrare come funziona uno script cgi di base. |
| ris.3saeuzz LastModified: 14-9-2007 John Peter Arnold |
|
This documentation as well as any accompanying software is an
exclusive property of AR Enterprise Spa ®. It is not allowed to reproduce copy, translate it without express permission. |