Programmazione web: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m rb completo lta
Etichetta: Ripristino manuale
 
(164 versioni intermedie di 71 utenti non mostrate)
Riga 1:
[[File:Client-server-model.svg|thumb|upright=1.4|Architettura [[client-server]] su cui gira un'[[applicazione web]] o un [[sito web]]]]
Con '''Programmazione Web''' si intendono tutte le attività connesse allo sviluppo di un sito [[web]]. La sua definizione include l' [[e-commerce]], il [[web design]], lo [[scripting]] client-side e [[server-side]] e la configurazione dei [[web server]]. Si va dallo sviluppo di singole pagine statiche di testo semplice alle più complesse applicazioni internet web-based, portali per il [[commercio elettronico]] fino ad arrivare ai [[social network]].
Con la locuzione '''programmazione web''' si indicano le attività e le tecniche di [[programmazione (informatica)|programmazione]], con i rispettivi [[linguaggio di scripting|linguaggi di scripting]], che consentono la realizzazione e lo sviluppo di [[applicazione web|applicazioni per il Web]]. La programmazione web si articola in tre tipologie
* a) il [[web design|design]] e [[web developer|developing]] per la realizzazione di [[sito web|siti web]], [[Content Management System|CMS]] per [[blog]], [[forum (Internet)|forum]] e [[rete sociale|reti sociali]], applicazioni o [[portale web|portali]] per l'[[e-commerce]];
* b) lo [[scripting]] [[lato client]] e [[lato server]];
* c) la configurazione dei [[server web]].
 
==Descrizione==
Per le grandi imprese e le grandi organizzazioni, i teams di [[web developer | web developers]] si compongono di centinaia di persone. Mentre le organizzazioni più piccole possono necessitare di un [[webmaster]] singolo (spesso con ingaggio a progetto). Lo sviluppo di un sito web può essere uno sforzo collaborativo tra dipartimenti piuttosto che di esclusivo dominio di dipartimenti designati.
{{vedi anche|Applicazione web}}
[[File:Client-server_model.svg|thumb|upright=1.4|Schema di funzionamento client-server]]
[[File:Overview_of_a_three-tier_application_vectorVersion.svg|thumb|upright=1.4|Schema applicazione web [[architettura three-tier|three-tier]]]]
[[File:Web_form_campione.png|thumb|upright=1.4|[[Interfaccia utente|Interfaccia web]] di un'applicazione web ([[form]])]]
La programmazione web è dipendente dagli obiettivi dell'applicazione sviluppata ed è strettamente legata alla scelta tra [[Web statico]] e [[Web dinamico]]<ref>{{Cita web|url=https://www.geeksforgeeks.org/static-vs-dynamic-website/|titolo=Static vs Dynamic Website|sito=GeeksforGeeks|data=10 giugno 2019|lingua=en|accesso=25 ottobre 2021}}</ref><ref>{{Cita web|url=https://smallbusiness.chron.com/difference-between-dynamic-static-pages-69951.html|titolo=The Difference Between Dynamic & Static Web Pages {{!}} Chron.com|sito=web.archive.org|data=20 marzo 2019|accesso=25 ottobre 2021|dataarchivio=20 marzo 2019|urlarchivio=https://web.archive.org/web/20190320233700/https://smallbusiness.chron.com/difference-between-dynamic-static-pages-69951.html|urlmorto=sì}}</ref>.
* Il primo approccio è quello originario del Web e consiste nella stesura di documenti [[linguaggio di markup|formattati]] direttamente in codice [[HTML]] e caratterizzati da una bassa interazione con l'utente.
* Il secondo, rappresenta invece l'evoluzione delle applicazioni Web con l'inserimento di processi di automazione ed una maggiore [[interattività]] con l'utente (vedi anche [[Web 2.0]]).
 
Il web dinamico fa sovente uso di [[database]] e di [[linguaggio di scripting|linguaggi di scripting]] elaborati dal [[server]] oppure dal [[client]] quali ad esempio [[PHP]], [[Active Server Pages|ASP]], [[.NET]], [[JavaScript]], [[Python]]: questi codici una volta elaborati restituiscono codice in [[HTML]] al [[web browser]] dell'utente.
==La Programmazione Web come industria==
Sin dalla metà degli anni '90, quella della Programmazione Web è stata una delle industrie nel mondo che si è sviluppata più velocemente. Nel 1995 c’erano meno di 1.000 compagnie nel settore solo negli USA, ma dal 2005 erano già oltre 30.000. Ci si aspetta che l’industria del web cresca di oltre il 20% nel 2010[http://www.articler.com/23205/The-Web-Development-Industry-Is-Expected-To-Grow-Over-20-By-2010.html]. La crescita di questa industria è spinta dalla prospettiva del mercato di vendere prodotti e servizi ai loro clienti e di automatizzare il flusso di lavoro.
 
==La= Programmazione Webweb come industria ===
In più il costo per la creazione dei siti web e dell’hosting sono precipitati drasticamente negli ultimi 5 anni. Per i primi siti web si pagavano migliaia di euro, oggi invece ciascuno può sviluppare un semplice sito web per meno di 1000 euro in base alla complessità e ai contenuti dello stesso. Piccole compagnie di sviluppo web possono offrire pacchetti accessibili a una moltitudine di piccole società e clienti privati che, con un investimento relativamente basso, possono accrescere esponenzialmente il loro giro d'affari. In aggiunta esistono applicazioni e piattaforme pubbliche assolutamente gratuite. Un esempio popolare è [[LAMP (piattaforma) | LAMP]] ([[Linux]], [[Apache]], [[MySQL]], [[PHP]]) che normalmente sono distribuiti gratuitamente. Il fatto di essere liberamente distribuiti, da solo, ha fortemente contribuito alla crescita di popolarità del web. Un altro elemento che ha contribuito è stata la facilità di utilizzo dei software specifici per lo sviluppo web, come [[Dreamweaver | Adobe Dreamweaver]] o [[Microsoft Expression | Microsoft Expression Studio]] (precedentemente [[Microsoft Frontpage]]). Con l’uso di questi software, teoricamente tutti possono sviluppare una pagina web in pochi minuti. La conoscenza di Hyper-Text Markup Language ([[HTML]]), o altri linguaggi di programmazione non è richiesta ma raccomandata per risultati professionali.
Dalla metà degli [[anni 1990]], quella della programmazione Web è stata una delle industrie nel mondo che si è sviluppata più velocemente: nel 1995 c'erano meno di 1.000 compagnie nel settore solo negli [[Stati Uniti]], ma dal 2005 erano già oltre 30.000 avendo avuto un forte sviluppo negli anni 2000 con l'avvento del [[Web 2.0]] e la diffusione di applicazioni Web<ref>{{Cita web|url=https://pillolediweb.wordpress.com/2011/06/22/cose-la-programmazione-web/|titolo=Cos’è la programmazione web?|autore=Silvia Cariello|sito=Pillole di Web|data=22 giugno 2011|accesso=25 ottobre 2021}}</ref>.
 
La crescita di questa industria è spinta dalla prospettiva del mercato di vendere prodotti e servizi ai loro clienti al fine di automatizzare il flusso di lavoro; il settore della programmazione web è quindi generalmente un settore florido e in continuo sviluppo.
Oggi gli svilluppatori mirano a realizzare applicazioni web che tradizionalmente sono disponibili solo in ambiente locale: invece di far girare le applicazioni sulla stazione locale, l'utente interagisce con le applicazioni on-line. Questo ha permesso la nascita di nuovi metodi di comunicazione, la decentralizzazione dell'informazione e la distribuzione dei contenuti in rete.
 
Aumentata la domanda, è aumentata anche l'offerta, facendo scendere i prezzi. Sono inoltre state sviluppate [[piattaforma (informatica)|piattaforme]] pubbliche gratuite. Un esempio è il pacchetto [[LAMP]] ([[Linux]], [[Apache HTTP Server|Apache]], [[MySQL]], [[PHP]]). Gli sviluppatori web mirano a realizzare applicazioni che tradizionalmente erano disponibili solo in ambiente locale. Questo ha permesso la nascita di nuovi metodi di comunicazione, la decentralizzazione dell'informazione e la distribuzione dei contenuti in rete<ref>{{Cita web|url=https://whatis.techtarget.com/definition/LAMP-Linux-Apache-MySQL-PHP|titolo=What is LAMP (Linux, Apache, MySQL, PHP)? - Definition from WhatIs.com|sito=WhatIs.com|lingua=en|accesso=25 ottobre 2021}}</ref>.
Esempio della drastica trasformazione che la programmazione web ha portato nelle comunicazioni e nel commercio è l'[[e-commerce]]. Siti di aste online come [[eBay]] hanno cambiato il modo in cui i consumatori consumano e acquistano beni e servizi. Un altro ottimo esempio di come lo sviluppo del software destinato al web abbia apportato nette trasformazioni nel modo di comunicare sono i [[blog]].
 
Esempio della trasformazione che la programmazione web ha portato nelle comunicazioni e nel commercio è l'[[e-commerce]] (es. [[eBay]]). Altro esempio di come lo sviluppo del software destinato al web abbia apportato nette trasformazioni nel modo di comunicare sono i [[blog]]. Per le grandi imprese e le grandi organizzazioni, i team di [[web developer]] si compongono anche di decine di persone, mentre le organizzazioni più piccole possono necessitare di un [[webmaster]] singolo<ref>{{Cita web|url=https://www.elisaweb.it/perche-scegliere-un-sito-dinamico/|titolo=Sito Web Dinamico perché sceglierlo? I vantaggi di un sito Wordpress|sito=Siti Internet Torino ElisaWeb|accesso=25 ottobre 2021}}</ref>.
==Gerarchia di Base==
La Programmazione Web può essere suddivisa in più aree e una tipica gerarchia di base potrebbe essere la seguente;
 
== Suddivisione di base ==
===Codifica Client Side===
{{vedi anche|Framework per applicazioni web}}
* [[AJAX]] Fornisce nuovi metodi per l'utilizzo di Javascript, linguaggi lato server (ASP.Net o PHP) e altri linguaggi al fine di migliorare l'esperienza dell'utente.
A livello teorico la programmazione web può suddividersi in programmazione web [[lato client]] e programmazione web [[lato server]] a seconda che ci si occupi dello sviluppo del [[front-end]] o del [[back-end]] dell'applicazione web. Spesso allo sviluppatore capita di doversi occupare di entrambe le parti. Applicazioni web abbastanza semplici possono essere costruite anche totalmente con logica lato client (ad es. interamente in [[JavaScript]]). La parte data-layer, ovvero creazione del database con relative tabelle e manutenzione, è spesso opera di un [[sistemista|database Administrator]] (DBA)<ref>{{Cita web|url=https://vitolavecchia.altervista.org/caratteristiche-e-differenza-tra-programmazione-lato-client-e-lato-server/|titolo=Caratteristiche e differenza tra programmazione lato client e lato server|sito=Informatica e Ingegneria Online|data=20 gennaio 2020|accesso=25 ottobre 2021}}</ref>.
* [[Flash Player |Adobe Flash Player]] onnipresente piattaforma client-side.
* [[Javascript]] Formalmente chiamato ECMAScript, Javascript è un utile strumento client-side (anchesso praticamente onnipresente).
 
===Programmazione Client Side<ref>{{Cita web|url=https://qastack.it/software/171203/what-are-the-differences-between-server-side-and-client-side-programming|titolo=Quali sono le differenze tra la programmazione lato server e lato client?|sito=qastack.it|accesso=25 ottobre 2021}}</ref>===
===Codifica Server Side===
[[File:Javascript_icon.svg|thumb|Esempio di prototipo di funzione [[JavaScript]]]]
* [[AJAX]] Fornisce nuovi metodi per l'utilizzo di JavascriptJavaScript, linguaggi lato server ([[ASP.NET|ASP.Net]] o PHP) e altri linguaggi al fine di migliorare l'esperienza dell'utente.
* [[Flash Player |Adobe Flash Player]] onnipresente piattaforma client-side, ma oramai obsoleta.
* [[JavascriptJavaScript]] Formalmente chiamato ECMAScript, JavascriptJavaScript è un utile strumento client-side (anchessoanch'esso praticamente onnipresente).
 
===Programmazione Server Side<ref>{{Cita web|url=http://wpage.unina.it/rcanonic/didattica/at/lucidi_2009/AT_2009_L06_CGI.pdf|titolo=wpage.unina.it}}</ref>===
[[File:Java_Logo.svg|thumb|upright=0.7|[[Logo]] [[linguaggio Java|Java]]]]
[[File:PHP-logo.svg|thumb|Logo [[PHP]]]]
* [[Active Server Pages|ASP]] (di proprietà Microsoft)
* [[ColdFusion]] (di proprietà Adobe)
* [[Common Gateway Interface|CGI]] e/o [[Perl]] ([[open source]])
* [[Piattaforma Java|Java]], [[J2EEJava EE]] o [[WebObjects]]
* [[PHP]] (open source)
* [[Python]] (open source)
Riga 31 ⟶ 48:
 
===Database===
[[File:Sql_server_logo.png|thumb|Logo [[Microsoft SQL Server]]]]
* [[Apache]]
* [[Oracle Database|Oracle]]
* [[DB2]] (di proprietà IBM)
* [[FirebirdIBM DB2]]
* [[Microsoft SQL Server]]
* [[MySQL]]
* [[OracleFirebird SQL]]
* [[PostgreSQL]]
* [[SQLite]]
* [[ApacheMongoDB]]
 
==Considerazioni sulla Sicurezza==
Con il diffondersi delle piattaforme web, è aumentata la richiesta di [[sicurezza informatica|sicurezza]] nella trasmissione e archiviazione [[dati]]. Gli sviluppatori web devono perciò tener conto di diverse considerazioni, come lail ricerca di errori all'internofiltraggio dei [[form]],dati ilin filtraggio dell'outputuscita e la [[cifratura]]. Pratiche malevole come l' [[SQL injection]] o l'utilizzo di scripts realizzati allo scopo, possono permettere a chi ne fa uso di aver accesso ad indirizzi [[email]], [[password]] e contenuti protetti come i numeri di [[carta di credito|carte di credito]]<ref>{{Cita web|url=https://technet.microsoft.com/en-us/library/ms161953%28v=SQL.105%29.aspx|titolo=technet.microsoft.com}}</ref>.
 
Sovente si fa uso di diversi metodi di cifratura quando si devono trasmettere o salvare informazioni delicate. Per esempio l'ausilio di protocolli crittografici quali [[Transport Layer Security|TLS]], o [[Transport Layer Security|SSL]], permettono una comunicazione sicura e l'[[integrità dei dati]] su reti [[TCP/IP]], aiutando a prevenire eventuali [[Frode informatica|frodi informatiche]]. Una conoscenza di base della sicurezza informatica fa spesso parte delle conoscenze dello sviluppatore web<ref>{{Cita web|url=https://www.cisl-bergamo.it/2021/07/20/truffe-informatiche-sempre-piu-diffuse/|titolo=Truffe informatiche sempre più diffuse e sofisticate. Ecco come difendersi|sito=Cisl Bergamo|data=20 luglio 2021|accesso=25 ottobre 2021}}</ref>.
Tenere un web server al sicuro dalle intrusioni è dunque di fondamentale importanza. Molte tecnologie entrano in gioco quando si trasmettono informazioni via web. Molti sviluppatori spesso fanno uso di diversi metodi di cifratura quando si devono trasmettere o salvare informazioni delicate. Una conoscenza di base della sicurezza informatica fa spesso parte delle conoscenze dello sviluppatore web.
 
Siccome ialcuni buchiproblemi nelladi sicurezza di applicazioni web vengono trovatiidentificati solo dopo la fasepubblicazione didelle testing e quella di lancioapplicazioni, gli aggiornamenti sulla sicurezza sono di importanza cruciale. E'È spesso compito dello sviluppatore web tenere le applicazioni aggiornate con [[patch (informatica) | patch]] sulla sicurezza<ref>{{Cita web|url=https://developer.mozilla.org/en-US/docs/Web/Security|titolo=Web security {{!}} MDN|sito=developer.mozilla.org|lingua=en|accesso=25 ottobre 2021}}</ref>.
 
==Timeline==
[[ImageFile:Web development timeline.png|800px]]
 
== Note ==
 
<references />
 
==Vedi ancheVoci correlate ==
* [[webWeb developer]]
* [[webWeb design]]
* [[webmasterWebmaster]]
* [[Framework per applicazioni web]]
 
{{Portale|internet}}
==Sitografia==
http://en.wikipedia.org/wiki/Web_development (inglese)
 
[[Categoria :Applicazioni informaticaweb]]
[[Categoria:Programmazione]]