b'\n_START_ARTICLE_\nApplicazione web\n_START_SECTION_\nStoria\n_START_PARAGRAPH_\nQuando le prime applicazioni client-server cominciarono ad essere diffuse nel panorama informatico, da met\xc3\xa0 circa degli anni ottanta, questi sistemi richiedevano che per ognuno di essi fosse installata la parte client direttamente sulla workstation di ciascun utente. In breve qualunque aggiornamento, patch o modifica dell\'applicativo lato server (server-side) si trasformava nella esigenza di installare le versioni aggiornate su tutte le workstation degli utenti dell\'applicativo stesso. Questo tipo di problematiche inducevano ovviamente, in modo diretto, un onere economico non indifferente per il produttore del software, e di conseguenza un costo periodico di adeguamento per tutti gli utenti di questo tipo di applicazione informatica._NEWLINE_Di contro, le web-application generano il loro output in modo dinamico pilotando un front-end composto da documenti Web, destinati quindi ad un semplice web browser. Le prime web apps consistevano infatti nella generazione di pagine standard HTML/XHTML; successivamente con l\'evolversi delle tecnologie associate e soprattutto con la nascita di nuovi standard, si cominciarono a "distribuire" attraverso di esse documenti in formati ancora pi\xc3\xb9 "neutri", come l\'XML. In breve ogni singola pagina Web viene inviata al client come fosse un documento statico, ma la sequenza delle pagine pu\xc3\xb2 fornire un\'esperienza interattiva, poich\xc3\xa9 l\'input dell\'utente \xc3\xa8 restituito attraverso gli elementi embedded della pagina stessa. Durante la sessione, il web browser interpreta e visualizza le pagine, e dunque diventa il client universale per tutte le web-application, indipendentemente dal produttore del software._NEWLINE_Pi\xc3\xb9 di recente attraverso le webapps vengono spesso passati flussi di dati in formati SGML generici (o addirittura custom) direttamente ad altre applicazioni che, in virt\xc3\xb9 dell\'uso di questo tipo di output, sono sempre accessibili attraverso un comune web browser._NEWLINE_La parte dinamica lato client (o client-side) di questi sistemi informatici (es. applet) \xc3\xa8 affidata sempre a linguaggi standard, come ad esempio JavaScript, che sono inclusi in tutti i browser. Il crescente successo conseguito da librerie esperte, ormai veri e propri framework come JQuery, tecnologie dinamiche come AJAX, oppure plug-in, come il conosciutissimo Flash Player, consente oggi di "pilotare" ed arricchire le interfacce utente in modo completo ed efficiente.\n_START_SECTION_\nMotivazioni\n_START_PARAGRAPH_\nSpesso \xc3\xa8 importante che i visitatori di un sito web vedano che il contenuto sia coerente ed aggiornato. Il contenuto di un sito che varia nel tempo necessita di essere cambiato continuamente. Per esempio, in un sito web di e-commerce \xc3\xa8 richiesto che vengano pubblicati solamente gli annunci relativi a prodotti non ancora venduti. \xc3\x88 anche importante che i nuovi annunci siano pubblicati al massimo uno o due giorni dopo che sono stati inviati dal venditore. Se una di queste condizioni non viene rispettata, il sito probabilmente non avr\xc3\xa0 molto successo._NEWLINE_L\'impaginazione del testo e delle immagini che compaiono nel web browser quando l\'utente visita un sito web \xc3\xa8 spesso creata utilizzando un semplice linguaggio noto come Hyper Text Markup Language (HTML). Quando un utente visita un sito web, la porzione di testo che \xc3\xa8 "delimitata" dall\'HTML viene trasferita dal sito web al browser dell\'utente. Il browser interpreta questo testo, mostrando testo ed immagini all\'utente. La porzione di testo che viene trasferita \xc3\xa8 tipicamente chiamata pagina web. Molti visitatori di siti web concepiscono la navigazione in termini di spostamenti "da pagina a pagina" all\'interno di un sito. Quando fanno click con il mouse su un collegamento ipertestuale vengono trasportati dai loro browser in un\'altra pagina. Quando premono il pulsante Back invece vengono riportati all\'ultima pagina che hanno visitato._NEWLINE_Alcuni siti web sono statici. I siti web statici richiedono una persona con un livello di accesso privilegiato (a volte definita webmaster) per "aggiornare" manualmente il contenuto. L\'aggiornamento del contenuto richiede che la persona visiti ed aggiorni manualmente l\'HTML delle pagine che devono cambiare. Generalmente, questo viene fatto modificando un insieme di file sul server web (il computer che fa "girare" il sito web), in cui ogni file rappresenta una singola pagina._NEWLINE_Le modifiche all\'aspetto di un sito web statico richiedono che il manutentore del sito visiti ed aggiorni ogni file che compone il sito web. I siti web tipicamente possono crescere fino a comprendere migliaia di file e per questo l\'operazione pu\xc3\xb2 non essere un compito banale. Il manutentore responsabile del sito di annunci di automobili ha l\'onere aggiuntivo di tenere aggiornati anche gli annunci stessi. Se ogni pagina nel sito web rappresenta un annuncio relativo ad una particolare automobile, il webmaster ha la necessit\xc3\xa0 di eliminare le pagine che compongono l\'annuncio scaduto e di creare le pagine per le nuove inserzioni. Quindi ha anche l\'esigenza che nessun collegamento su altre pagine punti alle pagine rimosse._NEWLINE_La quantit\xc3\xa0 di lavoro da compiere diventa molta in un tempo davvero breve. Il manutentore del sito pu\xc3\xb2 anche, comprensibilmente, commettere errori e dimenticarsi di aggiornare o rimuovere pagine importanti._NEWLINE_Da qui l\'esigenza di sostituire le operazioni ripetitive e manuali con soluzioni applicative automatizzate, che svolgano queste funzioni in modo pi\xc3\xb9 efficiente, rapido e sicuro._NEWLINE_Infatti, in un sito web generato dinamicamente (detto in questo caso sito dinamico), al manutentore non \xc3\xa8 richiesto di visitare ogni pagina per eseguire l\'aggiornamento del contenuto o dello stile. Se il nostro ipotetico manutentore del sito degli annunci di automobili decidesse di costruire un\'applicazione web per gestire questo sistema, potrebbe conservare una lista di "nuovi annunci" slegata dalla struttura HTML (memorizzandola ad esempio in una generica base di dati). Sarebbe quindi in grado di istruire la propria applicazione web perch\xc3\xa9, quando un utente visita il sito, questa interroghi la base di dati e generi il codice HTML corrispondente ad uno di questi "annunci recenti" ovvero al loro indice.'