Programmazione web
Con la locuzione programmazione Web si indicano le attività, le tecniche e i rispettivi linguaggi di scripting, che consentono la realizzazione e lo sviluppo di applicazioni per il Web come per esempio il web design e developing per la realizzazione di siti web, CMS per blog, forum e social network, applicazioni o portali per l'e-commerce, lo scripting client-side e server-side, la configurazione dei web server.
Descrizione
La programmazione web è dipendente dagli obiettivi dell'applicazione sviluppata ed è strettamente legata alla scelta tra Web statico e Web dinamico.
- Il primo approccio è quello originario del Web e consiste nella stesura di documenti 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'inserimenti di processi di automazione ed una maggiore interattività con l'utente.
Il web dinamico fa sovente uso uso di database e di linguaggi di scripting elaborati dal server oppure dal client quali ad esempio PHP, ASP, .NET, JavaScript, Python. Questi codici una volta elaborati restituiscono codice in HTML al browser dell'utente.
La 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.
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. 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 piattaforme pubbliche gratuite. Un esempio è il pacchetto LAMP (Linux, 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.
Esempio della trasformazione che la programmazione web ha portato nelle comunicazioni e nel commercio è l'e-commerce (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
La programmazione Web può essere suddivisa in più aree.
Programmazione Client Side
- 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.
- Adobe Flash Player onnipresente piattaforma client-side.
- Javascript Formalmente chiamato ECMAScript, Javascript è un utile strumento client-side (anch'esso praticamente onnipresente).
Programmazione Server Side
- ASP (di proprietà Microsoft)
- ColdFusion (di proprietà Adobe)
- CGI e/o Perl (open source)
- Java, J2EE o WebObjects
- PHP (open source)
- Python (open source)
- Smalltalk
- .NET (di proprietà Microsoft)
Database
- DB2 (di proprietà IBM)
- Firebird SQL
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
- SQLite
Sicurezza
Con il diffondersi delle piattaforme web, è aumentata la richiesta di 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 carte di credito.
Sovente si fa uso di diversi metodi di cifratura quando si devono trasmettere o salvare informazioni delicate. Per esempio con l'ausilio di protocolli crittografici quali TSL, o SSL, permettono una comunicazione sicura e l'integrità dei dati su reti TCP/IP, aiutando a prevenire eventuali frodi informatiche. Una conoscenza di base della sicurezza informatica fa spesso parte delle conoscenze dello sviluppatore web.
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 sulla sicurezza.