4 Creare contenuti per il web - Andrea Giachetti
4 Creare contenuti per il web - Andrea Giachetti
4 Creare contenuti per il web - Andrea Giachetti
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
42<br />
collezioni di i<strong>per</strong>testi più o meno complicati che integrano contenuto multimediale. Gran parte<br />
dei siti implementano servizi che consentono di inviare richieste e di ottenere risultati, iscriversi<br />
ad attività varie, gestire pagamenti, ecc. Questo non può certamente essere realizzato attraverso<br />
un server che si limiti a distribuire pagine HTML statiche. In questo caso <strong>il</strong> server deve<br />
consentire l'esecuzione di programmi complessi che ricevano le richieste (sempre codificate dal<br />
protocollo HTTP) contenenti i dati inviati dall'utente mediante le apposite interfacce messe a<br />
disposizione dal <strong>web</strong> (i cosiddetti moduli o form HTML) e le elaborino. Un motore di ricerca<br />
è, <strong>per</strong> esempio, un sito di questo tipo: quando si inseriscono parole chiave nella casella di testo<br />
di Google e si clicca, esse vengono inviate al server in un messaggio di richiesta HTTP. Sul<br />
server <strong>il</strong> messaggio avvia un programma che elabora i dati e porta alla generazione automatica<br />
della pagina di risposta. I programmi eseguiti “lato server” memorizzano eventuali dati da<br />
conservare in basi di dati, estraggono dalle basi di dati stesse o ricercano attraverso la rete le<br />
informazioni necessarie <strong>per</strong> soddisfare la richiesta, eseguono le elaborazioni opportune, e<br />
“rispondono” alla richiesta generando “al volo” (on the fly) un codice HTML da inviare<br />
all'utente come risposta e che verrà alla fine visualizzato dal browser (Figura 14). Questo tipo di<br />
pagine <strong>web</strong> sono dette a volte “dinamiche” in quanto non residenti staticamente sul disco rigido<br />
del server, ma generate automaticamente dall'elaborazione dati “server side” sulla base della<br />
richiesta. Non vanno confuse con le pagine “dinamiche” client side, rese tali dall'esecuzione dei<br />
programmi Javascript sul browser.<br />
L'esecuzione di programmi che elaborano i dati inviati e generano la risposta HTML era, nelle<br />
prime applicazioni <strong>web</strong>, ottenuta attraverso un meccanismo standard detto CGI (Common<br />
Gateway Interface) mentre oggi è in genere realizzata integrando nel server stesso interpreti di<br />
linguaggi di programmazione specifici (ad esempio PHP, Perl, ASP), con i quali si realizzano<br />
le applicazioni dinamiche.<br />
Per fare in modo che sia agevole memorizzare e recu<strong>per</strong>are sul sito grosse quantità di<br />
informazione attraverso sulla base di parole chiave, categorie, ecc., si installa di solito sul server<br />
anche un software di gestione di basi di dati (vedi paragrafo seguente) che <strong>per</strong>mette ai<br />
programmi di aggiornare e recu<strong>per</strong>are i <strong>contenuti</strong> ut<strong>il</strong>i in maniera efficiente. Di fatto, quindi, un<br />
sito <strong>web</strong> dinamico lato server viene realizzato attraverso una serie di software differenti e non<br />
un semplice programma. Si parla in tal caso di piattaforma del server <strong>web</strong>; la più comune<br />
viene chiamata LAMP, acronimo che mette assieme tutte le componenti viste prima: un sistema<br />
o<strong>per</strong>ativo (Linux), un server <strong>web</strong> (Apache), un sistema di gestione di basi di dati (MySQL) ed<br />
un linguaggio di scripting (PHP). Analoghe piattaforme commerciali combinano allo stesso<br />
modo i diversi elementi. L'invio delle informazioni ai server avviene in genere attraverso quelli<br />
che in HTML, vengono chiamati moduli o form (vedi capitolo 4.14 ), che inseriscono nelle<br />
pagine vere e proprie interfacce utente (menù, caselle di testo, ecc.). Quando comp<strong>il</strong>iamo un<br />
form (ad esempio scriviamo la nostra richiesta a Google nella opportuna casella di testo), in<br />
pratica, anziché richiedere l'invio di un semplice f<strong>il</strong>e, si richiedono al server delle elaborazioni,<br />
che esso esegue al volo sulla base dei parametri inviati, sfruttando eventualmente archivi di dati<br />
collegati con <strong>il</strong> server stesso. I dati inseriti possono essere memorizzati nella base di dati e al<br />
client viene restituito comunque un documento HTML, non più, <strong>per</strong>ò, precedentemente<br />
memorizzato sul disco rigido, ma generato “al volo” (questo fatto fa sì, tra l'altro, che questo<br />
tipo di pagine non possa essere indicizzato dai motori di ricerca). I siti <strong>web</strong> più moderni<br />
ut<strong>il</strong>izzano anche tecnologie attraverso le quali si possono inviare e ricevere dati dai server senza<br />
necessariamente ricaricare una nuova pagina <strong>web</strong> dinamicamente creata, ma aggiornandone<br />
direttamente una parte. Questo crea la possib<strong>il</strong>ità di rendere le pagine <strong>web</strong> vere e proprie<br />
interfacce attraverso cui controllare una serie di attività che sono elaborate remotamente da uno