Programmazione web: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 37.160.251.68 (discussione), riportata alla versione precedente di Botcrux Etichetta: Rollback |
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti. |
||
(14 versioni intermedie di 11 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 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 11 ⟶ 10:
[[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]]).
Line 18 ⟶ 17:
=== Programmazione web come industria ===
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.
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>.
== 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>===
[[File:Javascript_icon.svg|thumb|Esempio di prototipo di funzione [[
* [[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 60 ⟶ 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|
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 ==
|