In informatica , un'applicazione web (detta anche web application , in inglese e francese) è un'applicazione gestibile direttamente online tramite un browser web e che quindi non necessita di installazione su macchine client , a differenza delle applicazioni mobile. Analogamente ai siti web, un'applicazione web è generalmente installata su un server e può essere gestita azionando dei widget tramite un browser web, tramite una rete informatica ( Internet , intranet , rete locale , ecc.). Esempi:
Le applicazioni web fanno parte dell'evoluzione degli usi e della tecnologia del Web chiamata Web 2.0 .
Web Application è una scorciatoia del software applicativo nella tecnologia World Wide Web . Non confondere le applicazioni web e le applicazioni mobili disponibili negli store di applicazioni (store).
Il software applicativo è un software che applica (automatizza) i principi specifici di un'attività.
Il World Wide Web (traduzione letterale, world spider web) è una tecnologia per la condivisione di documenti ipertestuali .
Nella tecnologia client-server , utilizzata per il World Wide Web, il browser Web invia richieste di pagine Web al server . Il server risponde alle richieste inviando le pagine al browser web. Il browser mostra quindi le pagine all'utente.
Le applicazioni web utilizzano questa tecnica per implementare la propria GUI . Questo è composto da pagine create ex-novo dal software durante ogni richiesta. Ogni collegamento ipertestuale contenuto nella pagina provoca l'invio di una nuova richiesta, che si tradurrà in una nuova pagina. A differenza di un sito Web statico in cui le pagine sono file precedentemente salvati.
Le pagine Web contengono vari widget come pulsanti , icone e caselle di testo , che consentono la manipolazione dell'applicazione. Ogni azionamento di un pulsante provoca l'invio di una nuova richiesta. Le pagine Web possono contenere applet .
A differenza di altri software, un'applicazione web configurata su un server è immediatamente utilizzabile dal consumatore senza acquistarla e installarla sul proprio computer, purché il computer del consumatore sia dotato di browser Web e connessione di rete. In questo modo si evitano interventi da parte degli amministratori di sistema , interventi spesso più costosi del software stesso.
L'applicazione web è spesso resa disponibile al consumatore dall'editore del software sui propri server, una tecnica chiamata Software as a Service .
L'uso del browser Web come parte client, un software disponibile su molti sistemi operativi, garantisce la portabilità di un'applicazione Web.
Il World Wide Web è un sistema di documentazione ipertestuale creato nel 1993 per le esigenze del Centro europeo per la ricerca nucleare ( CERN ). Il primo browser web ( NCSA Mosaic ) è stato creato lo stesso anno dal National Center for Supercomputing Applications ( NCSA ).
Il World Wide Web ha consentito agli utenti di condividere documenti e immagini più velocemente che tramite la posta e più facilmente che tramite la condivisione di file .
Il numero crescente di documenti pubblicati ha reso rapidamente necessari i motori di ricerca per trovarli: l'utente inserisce una parola chiave, il server Web esegue la ricerca, quindi invia il risultato come documento.
I motori di ricerca sono stati implementati per estensione del server web.
Nel 1995, la NCSA ha pubblicato lo standard di settore CGI , che specifica come estendere un server Web, al fine di collegarlo con software applicativo, ad esempio un motore di ricerca.
La tecnologia delle applicazioni Web si è evoluta molto rapidamente tra il 1994 e il 2000, quando diversi software per server Web dedicati sono usciti sul mercato uno dopo l'altro, insieme a miglioramenti ai browser Web.
Le prime applicazioni web soffrivano di una manovrabilità ed ergonomia inferiori rispetto alle applicazioni client. Un'applicazione Web è chiamata Rich Internet Application e offre usabilità ed ergonomia equivalenti a un'applicazione client. Il termine Rich Internet Application è apparso per la prima volta in una pubblicazione Macromedia nel 2002.
La tecnologia delle applicazioni web consente molteplici utilizzi. Usi popolari sono motori di ricerca , webmail , e-commerce e giochi online .
Un motore di ricerca è un'applicazione web che cerca documenti.
Una webmail è un'applicazione web per la ricezione e l'invio di posta elettronica .
Un sistema di gestione dei contenuti è un'applicazione Web che presenta documenti. La presentazione dei documenti è simile a quella di un sito web , tuttavia i documenti vengono generati dal software durante ogni richiesta. Il sistema di gestione dei contenuti esegue l'elaborazione necessaria per la formattazione e la presentazione dei documenti.
Un browser game è un videogioco realizzato sotto forma di applicazione web.
Il software del forum consente discussioni aperte tra gli utenti: un utente scrive un messaggio e questo messaggio può essere letto da tutti gli altri utenti. Il software del forum a volte viene prodotto come applicazione web.
L' IM ( chat inglese ) consente lo scambio istantaneo di messaggi di testo tra diversi utenti. Il software di messaggistica istantanea a volte viene prodotto come applicazione web. I messaggi possono essere trasmessi ad un altro utente del software, oppure ad un telefono cellulare tramite il servizio di messaggistica breve ( SMS abbreviato ).
Google Maps è un'applicazione web che consente di visualizzare mappe geografiche di tutto il mondo.
Facebook è un'applicazione web che permette ad ogni utente di costruire un social network (amici, colleghi, persone che condividono gli stessi interessi).
Nella tecnologia più comune, l'applicazione web è orientata attorno a un server web a cui è connesso il software applicativo, a volte accompagnato da un server database . Il tutto è chiamato server delle applicazioni .
Il codice sorgente del software applicativo viene inserito direttamente nelle pagine web. Queste pagine sono memorizzate dal server . Quando il client richiede una pagina, il server web cercherà la pagina e quindi eseguirà le istruzioni in essa contenute. Queste istruzioni possono chiamare sul server del database. Il server web trasmette la pagina con il risultato dell'esecuzione al client .
La trasmissione delle informazioni tra client e server avviene tramite il protocollo HTTP , protocollo utilizzato anche per i siti web. Ciò rende possibile utilizzare lo stesso software client : un browser web .
Le applicazioni Web spesso utilizzano il meccanismo dei cookie : in risposta a una richiesta, il server invia informazioni di tracciamento al client (il cookie ). Quindi il cliente invierà queste informazioni a lui durante la richiesta successiva. Il meccanismo viene utilizzato per identificare il cliente e tracciare le manipolazioni.
Le pagine Web possono anche contenere applet . Questi sono pezzi di codice sorgente che verranno eseguiti dal browser web dopo la trasmissione della pagina, a differenza della maggior parte del codice sorgente che viene eseguito dal server web prima della trasmissione. ActiveX , Java , Adobe Flash e Silverlight sono tecnologie utilizzate per le applet.
Il software client, il browser Web , è lo stesso utilizzato per visualizzare un sito Web . Il software necessario per eseguire le applet è incluso nei browser, a volte come plug -in aggiuntivo .
Il software server riceve le richieste dal browser web, esegue l'elaborazione, quindi invia il risultato dell'elaborazione al client .
Nel 1991, il National Center for Supercomputing Applications ha pubblicato lo standard industriale CGI , che specifica come il software del server Web può essere collegato al software applicativo. Questo standard è inizialmente destinato a consentire la realizzazione dei motori di ricerca .
PHP , sviluppato da Rasmus Lerdorf , è un interprete che può essere collegato a un server web. L'interprete permette di eseguire software scritti in linguaggio PHP e incorporati nelle pagine web. Il risultato dell'esecuzione viene inviato al server web, che lo trasmetterà al client.
WebObjects , sviluppato da Apple , è un software server web che esegue il codice sorgente contenuto nelle pagine, codice sorgente scritto in linguaggio Java .
ASP è una tecnologia sviluppata da Microsoft , composta da un interprete, che si collega al software del server web di Internet Information Services . L'interprete esegue il codice sorgente contenuto nelle pagine, codice sorgente scritto in linguaggio VBScript .
JSP è una tecnologia sviluppata da Sun Microsystems , composta da un software web server a cui può essere collegato un software applicativo scritto in linguaggio Java . Il software applicativo è costituito da pagine web contenenti codice sorgente precedentemente compilato .
ASP.Net è una tecnologia sviluppata da Microsoft in sostituzione di ASP , costituita da un software che si collega al software del server Web di Internet Information Services ed esegue il software applicativo. Il software applicativo è composto da pagine contenenti codice sorgente scritto in un linguaggio che utilizza il framework di programmazione .Net ( Visual Basic .NET o C# ), il software applicativo è preventivamente compilato .
LAMP ( Linux - Apache - MySQL - PHP ) è una suite di software open source che, usati insieme, permette di creare server applicativi. Per definizione, questa suite è composta dal sistema operativo Linux , dal software del server Web Apache , dall'interprete PHP e dal sistema di gestione del database MySQL .
Wamp - (neologismo basato su LAMP ) - ( Windows - Apache - MySQL - PHP ) è una suite di software che, usati insieme, permette di creare server applicativi. Per definizione, questa suite è composta dal sistema operativo Windows , dal software del server Web Apache , dall'interprete PHP e dal sistema di gestione del database MySQL .
Il software del server delle applicazioni viene utilizzato anche per eseguire servizi web .
Il browser web è il software che visualizza i risultati inviati dal server, riceve le azioni dell'utente e le trasmette al server .
Un applet è un pezzo di software embedded in una pagina web, ed eseguito dal browser web del client del computer . Quando l'utente attiva un widget posizionato in una pagina web, l'applet può quindi modificare la presentazione della pagina (tecnica chiamata DHTML ), visualizzare messaggi o inviare richieste all'application server.
JavaScript , originariamente chiamato LiveScript, è un linguaggio di programmazione per applet sviluppato da Netscape . Le applet scritte in questo linguaggio vengono eseguite da un interprete incluso nel browser web. Molti browser Web dispongono di un interprete JavaScript.
I primi browser Web dotati di un interprete JavaScript avevano differenze di dialetto che significano che un'applet scritta per un particolare interprete non è sempre compresa da un altro interprete. Per ovviare a questo problema, Ecma International ha pubblicato nel 1999 lo standard industriale ECMA-262 ECMAScript che specifica la sintassi che gli interpreti JavaScript devono comprendere.
Il Document Object Model (abbreviato DOM ) è un insieme standardizzato di oggetti che rappresenta la pagina visualizzata, così come il browser web. Il DOM è l' interfaccia di programmazione utilizzata nelle applet per apportare modifiche alla pagina.
Il metodo Ajax consiste nell'utilizzare congiuntamente tecnologie come JavaScript , CSS, XML, il DOM e la XMLHttpRequest al fine di creare applicazioni Web che offrano una maggiore gestibilità e comfort di utilizzo rispetto a quanto precedentemente disponibile, quindi - la Rich Internet Application (abbr. RIA).
Java è un linguaggio di programmazione sviluppato da Sun Microsystems , che può essere utilizzato per le applet. Le applet scritte in questo linguaggio sono precedentemente compilate, ed eseguite da un software collegato al browser web, il plug-in Java (traduzione letterale: che si inserisce in esso). Vedere Ambiente runtime Java .
ActiveX è una tecnologia sviluppata da Microsoft in cui i componenti software possono essere inclusi come applet nelle pagine web. Questa tecnologia richiede un sistema operativo Windows sul computer client .
Flash è una tecnologia sviluppata da Adobe . Un software collegato al browser, il plug-in Flash consente di visualizzare animazioni, immagini vettoriali , video ed eseguire applet. Include un interprete per applet nel linguaggio di programmazione ActionScript, un linguaggio simile a JavaScript. Questa tecnologia è ampiamente utilizzata per i videogiochi online.
Le applicazioni web sono spesso realizzate da team composti da sviluppatori , ma la progettazione dell'applicazione richiede diverse competenze trasversali e richiede l'intervento di interface designer (UI designer), UX designer, software architect, ma anche Product manager. Lo sviluppo richiede la conoscenza dei diversi linguaggi utilizzati nelle tecnologie Web: HTML per la presentazione delle pagine, CSS per la carta grafica, JavaScript , Java o ActionScript per le automazioni eseguite dal client, nonché un linguaggio come Java , PHP , C# o VBScript per le automazioni eseguite dal server.
Le applicazioni web sono costituite da un insieme di componenti software e pagine "carrier"; i componenti sono raggruppati in librerie software (vedi servlet ). Un software server web fornito a tale scopo (server di applicazioni web) esegue un determinato componente quando viene ricevuta ciascuna richiesta. ASP.NET , Websphere , JBoss o Apache Tomcat sono software per server di applicazioni web.
Un'applicazione web viene in genere utilizzata contemporaneamente da più utenti; è dotato di meccanismi logici di controllo degli accessi , questi si basano su meccanismi di controllo degli accessi specifici del server di applicazioni web e del sistema operativo. A volte utilizzano meccanismi esistenti come SSO ( single sign-on ).
Per i lavori di costruzione, gli ingegneri utilizzano ambienti di sviluppo integrati che aiutano sia con programmazione di computer e progettazione di siti web , come Visual Studio o Eclipse .
La sicurezza di un'applicazione web è strettamente legata all'ambiente che la ospita. Difetti come lo scripting tra siti possono mettere a rischio l'applicazione se lo sviluppatore non ha preso precauzioni per proteggere il suo codice. È possibile utilizzare diversi modi per attaccare un'applicazione, ad esempio SQL injection o JavaScript.