12.12.2012 Views

4 Creare contenuti per il web - Andrea Giachetti

4 Creare contenuti per il web - Andrea Giachetti

4 Creare contenuti per il web - Andrea Giachetti

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!