Programmazione web: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Etichette: Modifica da mobile Modifica da web per mobile
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti.
 
(20 versioni intermedie di 15 utenti non mostrate)
Riga 1:
[[File:Client-server-model.svg|thumb|300pxupright=1.4|Architettura [[client-server]] su cui gira un'[[applicazione web]] o un [[sito web]]]]
{{F|programmazione|febbraio 2013}}
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:
[[File:Client-server-model.svg|thumb|300px|Architettura [[client-server]] su cui gira un'[[applicazione web]] o un [[sito web]]]]
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]];
Line 8 ⟶ 7:
==Descrizione==
{{vedi anche|Applicazione web}}
[[File:Client-server_model.svg|thumb|300pxupright=1.4|Schema di funzionamento client-server]]
[[File:Overview_of_a_three-tier_application_vectorVersion.svg|thumb|300pxupright=1.4|Schema applicazione web [[architettura three-tier|three-tier]]]]
[[File:Web_form_campione.png|thumb|300pxupright=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]].: Questiquesti codici una volta elaborati restituiscono codice in [[HTML]] al [[web browser]] dell'utente.
 
=== Programmazione web come industria ===
Dalla metà degli [[anni 1990]], quella della programmazione Web è stata una delle industrie nel mondo che si è sviluppata più velocemente.: Nelnel 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 eal fine di automatizzare il flusso di lavoro.; Ilil settore della programmazione web è quindi generalmente un settore florido e in continuo sviluppo.
 
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 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>.
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.
 
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.
 
== Suddivisione di base ==
{{vedi anche|Framework per applicazioni web}}
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>.
 
===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>===
===Programmazione Client Side===
[[File:Javascript_icon.svg|thumb|Esempio di prototipo di funzione [[JavascriptJavaScript]]]]
* [[AJAX]] Fornisce nuovi metodi per l'utilizzo di JavaScript, 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.
* [[JavaScript]] Formalmente chiamato ECMAScript, JavaScript è un utile strumento client-side (anch'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]], [[Java EE]] o [[WebObjects]]
* [[PHP]] (open source)
Line 64 ⟶ 59:
 
==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 il filtraggio dei dati in uscita e la [[cifratura]]. Pratiche malevole come l'[[SQL injection]] possono permettere 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|TSLTLS]], 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>.
 
Siccome alcuni problemi di sicurezza vengono identificati solo dopo la pubblicazione delle applicazioni, gli aggiornamenti sulla sicurezza sono di importanza cruciale. È 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==
[[File:Web development timeline.png|800px]]
 
== Note ==
 
<references />
 
== Voci correlate ==