| Tecnologia di Internet | |||
|
|||
Il compito più semplice di un web server consiste nel fornire pagine HTML statiche. Per incrementare la potenza del server e dargli la possibilità di fornire pagine dinamiche, (cioè create sul momento, con dati variabili) o semplicemente amministrare il server possono essere usate alcune tecnologie server-side che essenzialmente fanno tutte la stessa cosa. Il funzionamento generale di un server web, considerando anche la tecnologie server-side, è il seguente
Questa descrizione comprende anche il caso più semplice, quello di una pagina statica. Un utente chiede al browser di contattare un server mediante il protocollo HTTP, e di richiedere uno specifico documento HTML. Il documento viene trasmesso dal server e viene ricevuto e visualizzato dal browser. Un esempio un po più complesso. Un utente fornisce dei parametri di ricerca mediante un form HTML che il browser spedisce al server mediante una connessione SSL. Il server processa i dati con uno script CGI connettendosi ad un database e facendo una ricerca sulla base della richiesta dellutente e ritrasmette i risultati che vengono visualizzati in una.tab nella finestra del browser. Un esempio ancora più complesso. Abbiamo un client Java che manda una richiesta criptata ad un Java Web Server, il quale processa la richiesta con un Java servlet che usa un oggetto CORBA per generare dati finanziari in forma XML con un foglio stile XSL che viene spedito al Java client per essere scansionato in un XML Tree e visualizzato secondo XSL. Le tecnologie utilizzate per le applicazioni web possono essere inquadrate in uno schema a livelli di questo tipo |
|||
| Le diverse tecnologie per lo sviluppo di una applicazione web possono essere classificate con questo schema a livelli. | ![]() |
||
| Con questo schema possono essere classificate numerose tecnologie, ognuna delle quali ha la sua sintassi, i suoi procedimenti, punti di forza e di debolezza. Nella figura che segue sono riassunte le principali tecnologie utilizzate. | |||
| Principali tecnologie per lo sviluppo di applicazioni web classificate secondo lo schema a livelli (da Selene Sol). | ![]() |
||
|
Riferimenti online |
|||
Dopo questa introduzione, in questa prima pagina dedicata allo scripting server-side trattiamo di queste tecnologie:
mentre nella pagina successiva vedremo
|
|||
| Nella pagina precedente abbiamo già visto alcune delle tecnologie a livello comunicazione e a livello browser. Discutiamo qui i form HTML perché sono in stretta relazione con gli argomenti di questa lezione.
Linterattività di base tra utente e web si ottiene mediante luso dei form (moduli) HTML. I tag HTML che definiscono un modulo consentono di progettarlo che lutente possa riempirlo con i propri dati e trasmetterlo al server. Il modulo comprende campi, pulsanti, menù a tendina e così via. |
|||
| Esempio di form (modulo) che lutente riempie con dati che, facendo clic sul pulsante Submit, vengono trasmessi al server. | ![]() |
||
| Un Common Gateway Interface, in breve CGI, stabilisce come browser e server trattano le informazioni che provengono da form HTML. In senso lato, CGI è spesso usato con il senso di qualunque programma che gira a fianco di un web server e interagisce con esso. Un CGI può essere sincrono o asincrono (ACGI). Un ACGI lavora indipendentemente dal web server (non sono obbligati ad aspettarsi a vicenda).
Come si è già detto, il compito più comune di un web server consiste nel trasmettere pagine HTML statiche, già preparate. Se sul web server gira un programma che può eseguire qualche azione e successivamente spedire una pagina al browser, la pagina può essere in qualche modo attiva, cioè contenente risposte personalizzate o comunque aggiornate. Per esempio può visualizzare un contatore (quante volte è stata vista questa pagina), oppure può visualizzare le quotazioni di borsa (che continuano a cambiare) o le previsioni del tempo aggiornate. Invece di trasmettere passivamente il contenuto di pagine preventivamente preparate, le specifiche CGI consentono di servire documenti diversi secondo le richieste del client. Gli script (o gateway) CGI sono piccoli programmi che possono essere scritti in qualunque linguaggio di programmazione (il più usato è Perl) e che vengono eseguiti sul server (per questo sono detti server-side). In questo senso sono in contrapposizione con gli script client-side come gli applet Java, gli script JavaScript, e i controlli ActiveX. Gli script CGI vengono utilizzati per
Quando un browser richiede lURL di un qualcosa che non è un file ma uno script CGI, il server esegue lo script (passandogli i dati che arrivano da un form o mediante un URL) e restituisce il risultato. In che modo il server web sa quali documenti sono da eseguire e quali le informazioni da trasmettere? Alcuni server (ma non tutti) richiedono che gli script siano localizzati in una particolare directory. Quindi lURL http://www.server.com/scripts/ricerca è una richiesta di esecuzione dello script denominato ricerca. Oppure, il server può essere configurato in modo che possa eseguire qualunque file con un nome particolare, per esempio con il suffisso cgi. Se il server fosse di questo tipo lURL http://www.server.com/programmi/ricerca.cgi sarebbe una richiesta di esecuzione dello script ricerca.cgi. |
|||
|
Perl Perl significa Practical Extraction and Report Language ed è un linguaggio interpretato creato da Larry Wall per la piattaforma Unix. Lo scopo è quello di assistere lutente Unix con compiti usuali probabilmente troppo pesanti per essere implementati nella shell e troppo complicati per essere programmati in C. Oltre alla piattaforme Unix Perl è stato portato su tutti i personal più comuni. Perl è il linguaggio più comune con cui si scrivono gli script CGI. |
|||
|
Il flusso dei dati CGI è uno standard che regola il modo in cui server e script si accordano su come vengono chiamati gli script e come vengono passati i dati. Il ruolo del server è infatti semplicemente quello di mandare in esecuzione lo script e passargli i dati. I dettagli delle regole CGI dipendono dal tipo di sistema operativo su cui gira il web server: Unix, Macintosh o Windows. CGI è quindi in realtà un insieme di standard, uno per ogni sistema operativo. Tutti comunque definiscono il modo in cui lo script viene avviato e come i dati vengono passati allo e dallo script. Il primo passo è la richiesta che proviene da parte del client. Il server quindi passa la richiesta al programma CGI per lesecuzione. I risultati (se ci sono) vengono passati al server che li trasmette al client. Infine la connessione viene chiusa. Considerando nella descrizione dellinterazione browser-server anche il CGI, il funzionamento diventa questo:
|
|||
|
Metodo di passaggio dei dati Il client può passare dati al gateway in due modi: o con variabili di ambiente o con uno standard input.
Risorse online
|
|||
| Ci sono alcuni problemi con CGI, il più grave dei quali è la velocità. Ogni volta che il server web riceve una richiesta deve eseguire lo script CGI, e ogni volta (se non è incorporato nel server) caricare linterprete Perl. Se le richieste CGI sono numerose, lefficienza del server può risentirne. Un modo per risolvere il problema della velocità consiste nellincorporare nel web server stesso alcune funzioni, che altrimenti dovrebbero essere svolte dal CGI. SSI (Server Side Include) è basato su questo idea. Si tratta di inserire tag speciali nel documento HTML; questi tag vengono interpretati al volo dal web server nel momento in cui la pagina viene trasferita al browser e non da uno script CGI. | |||
| Esempio di funzionamento del tag SSi per la visualizzazione della data del server. | ![]() |
||
| Normalmente un web server ha la possibilità di eseguire diversi comandi SSI. Per esempio una serie di comandi che hanno a che fare con le date e il tempo. E anche comandi che consentono di inserire del testo in un documento, o di inserire nel documento il nome del file, la data di ultima modifica e così via. Esistono anche tag per eseguire script CGI.
SSI con tag proprietari Proseguendo nellidea del SSI, diverse società di software hanno progettato web server con un numero molto elevato di possibili comandi SSI. Questi server consentono agli sviluppatori di utilizzare un elevato numero di risorse incorporate per rendere le loro pagine dinamiche ben oltre il limite delle possibilità offerte dal sistema operativo. ColdFusion, per esempio, offre un insieme di più di 70 tag CFML che consentono di eseguire la maggior parte dei compiti che normalmente si richiedono ad un server. Tuttavia ogni tecnologia basata su SSI ha una seria limitazione, dovuta al fatto che gli sviluppatori sono limitati ad un numero limitato di tag: quelli offerti dal SSI tradizionale, più quelli proprietari eventualmente presenti. Cosa succede se uno sviluppatore vuole sviluppare i propri tag? In questo caso è necessario un modo per incorporare nelle pagine HTML codice interpretato dinamicamente che può essere processato dal web server, cioè un ibrido tra CGI e SSI. Così è nato ASP. |
|||
|
|||