Corso di Informatica Modulo T3 B1 Programmazione web



Documenti analoghi
Corso di Informatica Modulo T3 B2 - Database in rete

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

19. LA PROGRAMMAZIONE LATO SERVER

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Introduzione all elaborazione di database nel Web

Corso di PHP. Prerequisiti. 1 - Introduzione

Siti web centrati sui dati (Data-centric web applications)

Lezione II: Web server e ambiente di lavoro

Corso di Informatica

Componenti Web: client-side e server-side

Database e reti. Piero Gallo Pasquale Sirsi

Corso Web programming

Capitolo 4 Pianificazione e Sviluppo di Web Part

Siti interattivi e dinamici. in poche pagine

Come funziona internet

Applicazioni web centrati sui dati (Data-centric web applications)

Protocolli e architetture per WIS

Esercizi di JavaScript

HTML il linguaggio per creare le pagine per il web

ESERCITAZIONE Semplice creazione di un sito Internet

Client - Server. Client Web: il BROWSER

Flavio De Paoli

Lezione 1 Introduzione

Corso di Web programming Modulo T3 A2 - Web server

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1)

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML

sito web sito Internet

Il Web Server e il protocollo HTTP

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

Introduzione al Web. dott. Andrea Mazzini

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Informatica per la comunicazione" - lezione 9 -

Lezione n 1! Introduzione"

Office e Applicativi sw

1) GESTIONE DELLE POSTAZIONI REMOTE

Progettazione Web Applicazioni client-server

Reti di Calcolatori. Il Livello delle Applicazioni

Una metodologia di progettazione di applicazioni web centrate sui dati

Corso di Informatica

Corso basi di dati Introduzione alle ASP

Corso di PHP. Prerequisiti. 1 - Introduzione

LaCie Ethernet Disk mini Domande frequenti (FAQ)

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

InterNet: rete di reti

Mac Application Manager 1.3 (SOLO PER TIGER)

GRUPPO CAMBIELLI. Posta elettronica (Webmail) Consigli di utilizzo

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Architettura client-server

Programmazione Server Side e Database in rete

Informatica per la comunicazione" - lezione 10 -

Creare una Rete Locale Lezione n. 1

Sito web parrocchiale: STRUMENTI E PROGRAMMI

Corso di Sistemi di Elaborazione delle informazioni

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

SDD System design document

Implementazione di MVC. Gabriele Pellegrinetti

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Concetti base. Impianti Informatici. Web application

NAVIGAZIONE SU INTERNET

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Web Programming Specifiche dei progetti

Corso di HTML. Prerequisiti. Modulo L3. 1-Concetti generali. Browser Rete Internet Client e server. M. Malatesta 1-Concetti generali-12 28/07/2013

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Corso basi di dati Installazione e gestione di PWS

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Aggiornamenti Sistema Addendum per l utente

Dexma Newsletter System

Fattura Facile. In questo menù sono raggruppati, per tipologia, tutti i comandi che permettono di gestire la manutenzione degli archivi.

ORSA MAGGIORE VALLARSA WEB VERSIONE PRELIMINARE!!!!

3 Automazione Web-based con Saia S-Web

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

Il web server Apache Lezione n. 3. Introduzione

Presentazione MyMailing 3.0

Cosa è un foglio elettronico

RETI INFORMATICHE Client-Server e reti paritetiche

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito

Transcript:

Corso di Informatica Modulo T3 B1 Programmazione web 1 Prerequisiti Architettura client/server Elementi del linguaggio HTML web server SQL server Concetti generali sulle basi di dati 2 1

Introduzione Lo scopo di questa Unità è introdurre i concetti fondamentali della programmazione web, come i concetti di pagina statica e dinamica, quello di applicazione web e le tecnologie di sviluppo software lato server e lato client. 3 Pagine web L HTML è il linguaggio per la creazione di pagine web. Attraverso queste pagine l utente invia dal client una pagina di richiesta e riceve dal server la corrispondente pagina di risposta. Possiamo avere: pagine web statiche; pagine web dinamiche. In entrambi i casi, il browser, che interpreta il codice HTML all interno delle pagine web, usa il protocollo HTTP (HyperText Transfer Protocol) sia per inviare la richiesta (HTTP request), sia per interpretare la pagina di risposta (HTTP response) inviata dal server. 4 2

Pagine statiche A metà degli anni Novanta il Web era ancora formato in gran parte da pagine statiche, cioè da documenti HTML il cui contenuto non poteva cambiare fino a quando qualcuno non interveniva manualmente a modificarlo. Lo schema di utilizzo di pagine statiche è il seguente: Il contenuto restituito dal server è statico, nel senso che si tratta di una pagina web direttamente esistente nel file system del server. 5 Uso di pagine statiche L utilizzo di pagine statiche prevede che: 1. Il client richiede attraverso il protocollo HTTP una pagina web (file.htm) mediante il suo URL. 2. Il server invia al client il file file.htm, contenente le informazioni desiderate. 3. Il browser del client provvede a interpretare il codice HTML presente nel file e a visualizzarne il contenuto. Si noti che: nessuna elaborazione viene eseguita sul file HTML; le pagine statiche hanno estensione.htm o.html; i dati nelle pagine sono quelli presenti al momento del caricamento sul server. 6 3

Pagine dinamiche Con l evoluzione di Internet, però, si cominciò a sentire l'esigenza di rendere dinamici i contenuti, cioè di far sì che la stessa pagina fosse in grado di proporre contenuti diversi, personalizzati in base alle preferenze degli utenti, oppure estratti da una base di dati (database) in continua evoluzione. 7 Pagine dinamiche Supponiamo che l utente richieda una pagina per visualizzare l orario corrente. Questa pagina, oltre al codice HTML, contiene uno script (in linguaggi lato server come Php, Asp o Jsp) che chiede l ora al server. In questo caso il server, prima di spedire la pagina, esegue lo script, che in genere produce altro codice HTML (ad esempio un messaggio del tipo: "Buon pomeriggio, sono le 17.10! ). Dopo l esecuzione, la pagina non conterrà più il codice dello script, ma solo HTML ed è pronta per essere spedita al browser. Ovviamente, la pagina che viene spedita al browser e che non contiene più codice dello script non è quella originale, ma una copia. L'originale rimane disponibile per le prossime richieste. Quindi l'utente vede solo il codice HTML e non ha accesso al codice PHP che ha generato la pagina 8 4

Pagine dinamiche 2. Il server esegue lo script e scrive la pagina HTML da inviare al client L utilizzo di pagine dinamiche prevede che: 1. Il client richiede attraverso il protocollo HTTP una pagina dinamica (Saluti.jsp) mediante il suo URL. 3. Il browser del client provvede a interpretare il codice HTML presente nel file e a visualizzarne il contenuto. Si noti che: viene eseguita elaborazione sulla pagina; le pagine dinamiche hanno estensione diversa da.htm; i dati sono quelli presenti al momento della richiesta al server. 9 Uso di pagine dinamiche Si noti che: le pagine dinamiche risiedono sul server il contenuto della pagina non è deciso a priori, ma può variare in base alla richiesta del client, una pagina dinamica può potenzialmente generare un numero infinito di pagine reali poiché è una specie di modello, in cui testi e immagini vengono collocati in base alle richieste; vengono usate quando: si richiede un aggiornamento costante e rapido di testi; si deve creare un motore di ricerca; occorre proteggere determinate pagine con username e password 10 5

Uso di pagine dinamiche Un esempio di utilizzo di pagine dinamiche è il seguente: Il contenuto restituito dal server è dinamico nel senso che si tratta di una pagina web contenente codice diverso dall HTML (detto script) che viene eseguito sul server al momento della richiesta da parte del client. 11 Uso di pagine dinamiche Il funzionamento delle pagine dinamiche è dovuto ad una parte del web server detta motore (motore ASP, motore PHP, motore JSP) che interpreta gli script immersi nel codice HTML. In particolare: il client invia al web server la richiesta della URL della pagina dinamica; il web server riceve la richiesta della pagina da parte del client e, controllato che la richiesta sia lecita, invia la pagina al client; sul client l utente immette i dati richiesti (modulo di richiesta) e reinvia la pagina al web server; il motore nel web server esegue gli script e memorizza i risultati; il web server ricostruisce la pagina web copiando il codice HTML originario e sostituendo gli script con i risultati salvati in memoria; il web server invia la pagina al browser. 12 6

Pagine dinamiche con SQL In alcuni casi, i passaggi sono di più, come ad esempio, quando il servizio richiesto prevede un accesso ad un database. 13 Pagine dinamiche con SQL In questo caso: il client invia al web server la richiesta della URL della pagina dinamica; il web server riceve la richiesta della pagina da parte del client e, controllato che la richiesta sia lecita, invia la pagina al client; sul client l utente immette i dati richiesti (modulo di richiesta) e reinvia la pagina al web server; il motore nel web server esegue gli script e memorizza i risultati; il motore esegue gli accessi al database invocando il DBMS server e ricava le tabelle di risposta; il web server ricostruisce la pagina web copiando il codice HTML originario e sostituendo gli script con i risultati salvati in memoria; il web server invia la pagina al browser. 14 7

Pagine statiche vs. dinamiche Un web server che opera con contenuto statico è ovviamente molto più veloce (da 2 a 100 volte) rispetto a un altro che opera con pagine dinamiche, specialmente se queste ultime prevedono accessi a database. 15 Esempi di pagine dinamiche Esempi: Motori di ricerca: quando su un motore di ricerca si effettua un interrogazione, la pagina dei risultati che viene presentata non è già esistente prima della richiesta. Solo dopo che il server ha eseguito la ricerca sulla parola chiave indicata viene creato il codice per presentare i risultati; Registrazione e accesso a siti: quando un utente si registra ad un sito, il server riceve la pagina con i dati, li registra nel DB degli utenti e invia una pagina di avvenuta registrazione; Siti di banche: quando l utente gestisce i propri dati contabili, le operazioni sono svolte medainte pagine dinamiche che accedono ad un DB. 16 8

Programmazione web La programmazione web è l insieme delle tecniche e delle metodologie di programmazione in ambiente client/server e con architettura TCP/IP-HTTP che hanno il compito di far interagire programmi lato server con programmi lato client all interno di una rete locale o su Internet. La programmazione web prevede la realizzazione di: programmi lato server (server side programming), ossia programmi applicativi che andranno in esecuzione sul server; programmi lato client (client side programming), ossia programmi applicativi che andranno in esecuzione sui client. 17 Applicazioni web La programmazione web consente di realizzare applicazioni web (web applications o webapps) che sono applicazioni accessibili mediante un browser. Si tratta pertanto di software: in grado di creare e utilizzare pagine web; accessibile via web per mezzo di una rete (locale o Internet); distribuito web-based; divenuto popolare alla fine degli anni 90, grazie al quale un client generico accede a funzioni applicative, utilizzando come terminale un qualunque personal computer equipaggiato con un web browser; 18 9

Applicazioni web Un applicazione web quindi: presenta ai visitatori un contenuto informativo interattivo e accattivante; contiene programmi di elaborazione (script) che sono: in grado di svolgere elaborazione locale (sul client) o remota (sul server); in grado di trasferire informazioni tra client e server in seguito alle richieste formulate dagli utenti; di complessità ridotta e capacità limitate rispetto ai programmi convenzionali. È da notare che in una webapp è importante mantenere una buona organizzazione della struttura. Se i numerosi file che la compongono (pagine html, immagini, servlet, jsp, php, fogli di stile, programmi di script, etc.) non sono correttamente catalogati. il sito diventa di difficile aggiornamento e manutenzione. 19 Esempi di webapp La maggior parte dei siti Internet è basata su applicazioni web per: aggiornamento software, senza uso di supporti; applicazioni web-based (mail, forum, blog, social network, giornali); motori di ricerca (Google); collaborazione a progetti (SourceForge); commercio elettronico (ebay). diffusione di informazioni standardizzate (Wikipedia). 20 10

Componenti di una webapp Una tipica applicazione web, in generale comprende: componenti residenti sia sul server che sul client; un browser per navigare tra le pagine della webapp; l applicazione vera e propria residente sul server, incaricata di inviare ai client le pagine di risposta; un web server in grado di rispondere alle richieste dei client, gestendo in modo efficiente la concorrenza mediante il multithreading; spesso anche un DBMS che è in grado di eseguire le query presentate dalle richieste dell utente. 21 Programmazione lato server Si basa su linguaggi che consentono di: prelevare le richieste dai client; elaborare le richieste; fornire al client i risultati, generalmente sotto forma HTML. Tipicamente, programmi lato server sono script: pagine ASP; VBScript pagine JSP; Java pagine PHP. PHP o programmi servlet Java; Java CGI C Linguaggi lato server 22 11

Programmazione lato server Uno svantaggio dell elaborazione lato server è che, poiché gli script vengono eseguiti sul server anziché sul client, il carico elaborativo è tutto incentrato sul server, fino alla generazione delle pagine HTML da inviare ai browser. Un vantaggio dell uso degli script lato server è che non possono essere copiati facilmente poiché al browser viene restituito solo il risultato dello script e gli utenti non possono visualizzare i comandi script che hanno creato la pagina visualizzata. 23 Un esempio di script lato server <HTML> <!- Saluti.asp --> <BODY> <% Dim h h = hour (now()) ora corrente Response.Write("<P>" & now()) Response.Write("</P>") If h<12 Then Response.Write("Buongiorno!") Else Response.Write("Buonasera!") End If %> </BODY> </HTML> Un semplice esempio di applicazione server side, realizzata in VBScript e salvata in un file.asp. Lo script viene eseguito sul server ed elaborato dal motore ASP installato sul server; il web server (IIS nel caso di piattaforma Microsoft) sostituisce allo script il risultato della elaborazione 24 12

Un esempio di script lato server Provando in locale la pagina, l indirizzo è http://localhost o l IP di loopback eventualmente seguito dal percorso. Lo script è stato eseguito e nella pagina appare il solo risultato dell elaborazione Visualizzando il codice HTML della pagina si trova: <HTML> <BODY> <P>18/05/2009 18.38.03</P>Buonasera! </BODY> </HTML> 25 Programmazione lato client Si basa su linguaggi che consentono di: controllare le richieste da passare al server; attendere le risposte da questo; gestire (formattare e visualizzare) le risposte. Tipicamente, programmi lato client sono: applet Java; Java componenti ActiveX; C++, VB routine JavaScript. Javascript Linguaggi lato client 26 13

Programmazione lato client La programmazione lato client prevede pagine web dinamiche, che oltre a codice HTML, possano contenere: Script, programmi scritti in linguaggi di scripting come Javascript o VBScript, che rispondono a determinati eventi; Applet, piccoli programmi scritti in Java, per aggiungere alle pagine effetti visivi o calcoli. Sono spediti dal server al client insieme alla pagina ed eseguiti sul client; Controlli ActiveX, programmi scritti in linguaggi come VisualBasic o C++, che hanno compiti simili alle applet, ma che vengono scaricati sull hard disk del client una volta per tutte, al contrario delle applet che vengono scaricate ogni volta che si visualizza una pagina. 27 Un esempio di script lato client <HTML><!-- SaldoAcconto.html --> <BODY> <SCRIPT Language="JavaScript"> var importoprestito = parsefloat (prompt("importo prestato: ")) var importoacconto = prompt ("Acconto versato: ",0) var importosaldo = importoprestito-importoacconto if (importosaldo!=0) alert("prestito non saldato!\n Residuo: " + importosaldo) else alert("prestito estinto!") </SCRIPT> </BODY> </HTML> Un semplice esempio di applicazione client side, realizzata in JavaScript e salvata in un file.html L applicazione viene eseguita sul client e riguarda una elaborazione locale, non dipendente dal server. 28 14

Ripartizione di applicazioni Poiché il rapporto client/server è molti a uno, occorre individuare i compiti del client e quelli del server e in particolare stabilire: cosa far eseguire dal client; cosa far eseguire dal server. La richiesta fatta da un client ad un web server, può produrre come risposta: l invio al client di una pagina HTML statica (residente sul disco del server) formattata direttamente dal server; l esecuzione di un programma sul server, i cui risultati vengono inviati al client con le istruzioni per la formattazione (pagina dinamica). 29 Ripartizione di applicazioni Indicativamente, possiamo considerare i compiti ripartiti in: Parte client convalide di input richiesta di conferme messaggi di errore o informativi elaborazione dati forniti dal server eseguire, in locale, funzioni che non coinvolgono il server Parte server accedere a risorse presenti sul server (file, database, librerie) controllo degli accessi dei client condividere dati tra diversi client e applicazioni 30 15

Argomenti Pagine statiche e dinamiche Pagine statiche Uso di pagine statiche Pagine dinamiche Uso di pagine dinamiche Pagine dinamiche con SQL Pagine statiche vs. dinamiche Esempi di pagine dinamiche Programmazione web Applicazioni web Esempi di webapp Schema di un applicazione web Programmazione lato server Un esempio di script lato server Programmazione lato client Un esempio di script lato client Ripartizione di applicazioni 31 Altre fonti di informazione P.Gallo, F.Salerno Informatica Generale 3, ed. Minerva Italica A.Lorenzi, D. Rossi, Le basi di dati e il linguaggio SQL, ATLAS 2004 32 16