Il lato server
Le tecnologie dal lato server sono caratterizzate dal fatto che permettono l'esecuzione di script sul server, in modo quindi indipendente dall'ambiente di esecuzione dell'utente, tanto da impostazioni e preferenze, quanto dal browser, quanto dal sistema operativo.
Le principali e piu' comuni tecnologie dal lato server sono:
- Common Gateway Interface (CGI)
- Application Program Interface (API) proprietarie
- Microsoft Active Server Pages (ASP)
- Java Server Pages (JSP)
- Cold Fusion Markup Language (CFML)
- PHP
Altre soluzioni (che non prenderemo in considerazione) sono Server Side JavaScript, FileMaker Pro, Lasso, JavaScript for Databases, Oracle Application Server, Tango.
CGI
CGI (Common Gateway Interface) e' un insieme di comandi e di variabili di memoria attraverso cui il server web puo' comunicare con altre applicazioni e programmi autonomi.
CGI permette ad un web server di comunicare con altri programmi in esecuzione sul server stesso. Per esempio, utilizzando CGI il web server puo' chiamare programmi esterni fornendo in input dei dati in modo esplicito (per esempio tramite un form in una pagina web) oppure implicito (per esempio tramite gli header HTTP).
CGI e' la tecnologia piu' diffusa dal lato server, e al giorno d'oggi praticamente ogni server web ne prevede il supporto. E' utilizzato comunemente per i contatori, i libri degli ospiti, per i giochi e le interazioni con i database in generale.
Un programma CGI puo' essere scritto praticamente in qualunque linguaggio di programmazione, anche se i linguaggi piu' utilizzati sono C/C++ e Perl. Perl e' particolarmente indicato in quanto e' un linguaggio di alto livello e interpretato: cio' rende i programmi scritti in Perl facilmente portabili da una piattaforma all'altra, soddisfacendo un requisito fondamentale per Internet. D'altra parte, la flessibilita' e complessita' di Perl fanno si' che il codice, se non opportunamente commentato, sia difficile da capire da parte di un altro autore o di un lettore.
API proprietarie
Un'API (Application program Interface) e' un insieme di routine (procedure), protocolli e strumenti per realizzare un'applicazione software.
Probabilmente per rispondere all'inefficienza di CGI, Microsoft e Netscape hanno sviluppato entrambe le proprie API per permettere agli sviluppatori di scrivere applicazioni dal lato server come delle librerie. Queste librerie vengono caricate nello stesso processo del web server e sono in grado di rispondere a richieste multiple senza generare nuovi processi. Possono essere caricate quando viene avviato il web server o quando sono necessarie.
Purtroppo le API proprietarie hanno alcune forti controindicazioni. Innanzitutto, dato che sono specifiche ad una particolare piattaforma, ogni programma scritto usando un'API puo' essere usato solo in quella specifica piattaforma e il trasferimento ad un'altra (porting) risulterebbe particolarmente difficile. Inoltre, poiche' sono eseguite nello stesso processo del server, se si verifica una violazione di accesso, potenzialmente puo' cadere l'intero server.
ASP
Microsoft Active Server Pages (ASP) e' la soluzione Microsoft per lo scripting dal lato server e lo standard nei sistemi basati su sistemi operativi Windows NT e Windows 2000. Un file ASP non e' altro che un file testuale che contiene testo, codice HTML e comandi di script, solitamente scritti utilizzando VBScript e JScript, anche se e' possibile utilizzare qualunque linguaggio con un Active X Scripting Engine certificato, come Python (www.pyhon.org) o PerlScript. Questo perche' ASP non e' un linguaggio di scripting in se', ma un ambiente che processa gli script incorporati nelle pagine web. ASP e' disponibile anche su altre piattaforme server con apposite estensioni; la piu' comune e' Chili!Soft ASP, che permette di usare ASP anche sui web server Apache, Lotus, Netscape e O'Reilly.
JSP
Java Server Pages e' (JSP) una tecnologia basata su Java, il linguaggio creato da Sun. Con l'utilizzo di JSP si permette ai programmatori e ai grafici di sviluppare e mantenere facilmente applicazioni web che sono indipendenti dalla piattaforma. JSP permette di separare l'interfaccia utente dalla generazione del contenuto, e di cambiare il layout delle pagine senza dover variare la struttura sottostante.
Lo svantaggio di JSP e' essenzialmente nella lentezza di sviluppo, legata alla complessita' della programmazione.
CFM
CFM e' un prodotto creato da Allaire Corporation che include un server e una serie di tool di sviluppo per integrare database e pagine web. I documenti creati con Cold Fusion includono tag scritti in Cold Fusion Markup Language (CFML) che semplificano l'interazione con i database ed evitano l'utilizzo di linguaggi piu' complessi. E' disponibile per una quantita' relativamente limitata di piattaforme: Windows, Solaris, Linux e HP/Ux. Uno dei vantaggi di Cold Fusion e' che rende particolarmente semplici le connessioni ai database e, in particolare, permette di sviluppare su un database e pubblicare tramite un altro senza particolari problemi.
PHP
PHP e' un linguaggio di programmazione server side realativamente nuovo, ed e' open source.
Permette di raccogliere dati, generare contenuti dinamici e interagire con i cookie; permette inoltre di interagire con altri servizi utilizzando i principali protocolli (IMAP, SNMP, NNTP, POP3).
Tra le applicazioni principali ricordiamo l'autenticazione degli utenti, la gestione di sistemi di conferenza, la gestione di template, la gestione di file XML, la creazione dinamica di immagini (tramite la libreria GD), di documenti PDF (tramite la libreria PDF).
PHP ha anche funzioni per leggere e inviare header HTTP, particolarmente utili quando si utilizza PHP in congiunzione con altri linguaggi come XML o WML, oppure per semplici redirezioni dal lato server o invio di cookie. Probabilmente la sua caratteristica principale e' il supporto di un vasto numero di database.
Inoltre PHP e' caretterizzato da una velocita' di sviluppo veramente notevole. Azioni come interrogazioni di database o utilizzo di socket TCP possono essere gestite in modo molto semplice, almeno in confronto agli altri linguaggi.
Cio' lo rende uno dei linguaggi piu' utilizzati per la programmazione server side. Cio' rende particolarmente agevole il reperimento di documentazione e di aiuto, oltre che di classi, librerie, script o anche software complessi gia' pronti.