Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer



Documenti analoghi
Siti interattivi e dinamici. in poche pagine

Componenti Web: client-side e server-side

Protocolli e architetture per WIS

Corso basi di dati Introduzione alle ASP

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

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

DBMS e Linguaggi di programmazione nell'era di Internet

Il Protocollo HTTP e la programmazione di estensioni Web

Architetture Web: un ripasso

Flavio De Paoli

19. LA PROGRAMMAZIONE LATO SERVER

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

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

Seminari Eucip, Esercizio e Supporto di Sistemi Informativi

La sicurezza nel Web

Corso di Informatica Modulo T3 B1 Programmazione web

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

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

VBScript. VBScript. Visual Basic Scripting Edition. Linguaggio di script per browser e server Microsoft Deriva da Visual Basic, ma è interpretato

Introduzione all elaborazione di database nel Web

Introduzione al Web. dott. Andrea Mazzini

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

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

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: sdfonline.unimc.it/info/modulo.jsp;

Lezione II: Web server e ambiente di lavoro

Come funziona internet

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

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

sito web sito Internet

Esercizi di JavaScript

Lezione 20: La grafica 3D ed il WEB. La grafica 3D ed il WEB. La grafica 3D ed il WEB. Contenuti non interattivi. Contenuti interattivi

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

Reti di Telecomunicazione Lezione 6

Appunti di Informatica Gestionale per cl. V A cura del prof. ing. Mario Catalano. Internet e il Web

Approfondimento di Marco Mulas

Architetture per le applicazioni web-based. Mario Cannataro

Database e reti. Piero Gallo Pasquale Sirsi

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

venerdì 31 gennaio 2014 Programmazione Web

Client - Server. Client Web: il BROWSER

Corso di Informatica Modulo T3 B2 - Database in rete

Implementazione di MVC. Gabriele Pellegrinetti

FTP. Appunti a cura del prof. ing. Mario Catalano

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Cosa è Tower. Sistema di autenticazione per il controllo degli accessi a reti wireless. struttura scalabile. permette la nomadicità degli utenti

IFInet Secure Webmail

Strumenti per la programmazione

Protocolli applicativi: FTP

Server web e protocollo HTTP

Indice PARTE PRIMA L INIZIO 1

2009. STR S.p.A. u.s. Tutti i diritti riservati

Server Web. Apache Tomcat. Modalità di funzionamento. Autore: Roberto Fabbrica Diapo 1. Diapo 2. Diapo 3

VntRAS Communication Suite

Il Web Server e il protocollo HTTP

Introduzione alle applicazioni di rete

Sicurezza nelle reti

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

A. Lorenzi Pagine ASP

Corso di PHP. Prerequisiti. 1 - Introduzione

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

Lezione 1 Introduzione

Firewall, Proxy e VPN. L' accesso sicuro da e verso Internet

Programmazione ad Oggetti. Java Parte I

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

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

Reti di Calcolatori. Il Livello delle Applicazioni

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

APPENDICE A Servlet e Java Server Page

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Architettura client-server

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

Concetti base. Impianti Informatici. Web application

Lo scenario: la definizione di Internet

Realizzazione di una chat su protocollo HTTP

Esercitazione 8. Basi di dati e web

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

Dal protocollo IP ai livelli superiori

Programmazione Server Side e Database in rete

Javascript: il browser

MagiCum S.r.l. Progetto Inno-School

Introduzione a XAMPP. Andrea Atzeni (shocked@polito.it) Marco Vallini (marco.vallini@polito.it) Politecnico di Torino Dip. Automatica e Informatica

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET

Il World Wide Web. Il Servizio World Wide Web (WWW) WWW WWW WWW WWW. Storia WWW: obbiettivi WWW: tecnologie Le Applicazioni Scenari Futuri.

Transcript:

Tecnologie per il Web Il web: architettura e tecnologie principali Una analisi delle principali tecnologie per il web Tecnologie di base http, ssl, browser, server, firewall e proxy Tecnologie lato client html, linguaggi di scripting (javascript, vbscript), applet, tecnologie basate su plugin (flash, vrml,...) Tecnologie lato server cgi-bin, linguaggi di scripting (asp, jsp, php), servlet Gianpaolo Cugola - Sistemi Informativi in Rete 1 Il web: Architettura Browser LAN URL MIME HTML javascript vbscript applet flash vrml... Firewall LAN-WAN Proxy Application Server Gateway Server web Gianpaolo Cugola - Sistemi Informativi in Rete 2 Cache Log WAN WAN DB... CGI HTML, ASP, JSP, PHP GIF, JPEG Programmi CGI Servlet Prot. applicativo SSL: Secure Socket Layer Il protocollo per la comunicazione tra browser e server Sfrutta una connessione TCP sulla porta 80 Usa gli URL come meccanismo di indirizzamento Usa il protocollo MIME per definire il tipo dei dati trasportat Gianpaolo Cugola - Sistemi Informativi in Rete 3 Protocollo per la comunicazione sicura tra due partner Originariamente sviluppato dalla Netscape è oggi uno standard accettato dalla IETF Nasce per risolvere i problemi di sicurezza nella comunicazione tra client e server web ma definisce un protocollo generale indipendente dall applicazione Si utilizzano url del tipo https:/ /... per indicare comunicazione basata su SSL È stato pensato per essere facilmente estensibile e configurabile Caratteristiche: Protocollo con connessione (client e server mantengono diverse informazioni relativi alla sessione a partire dalla chiave crittografica) Basato su TCP/ IP (porta 443) Comunicazione crittografata Possibilità di mutua autenticazione tra client e server basata su certificati Caching dei parametri della comunicazione per un efficiente ripristino di comunicazioni interrotte 4

Il browser Il server web Gioca il ruolo del client Gestisce l interazione con l utente Interpreta il linguaggio html e presenta i dati a video Generalmente include: un interprete per i principali linguaggi di scripting lato client...... una JVM per l esecuzione degli applet...... e la possibilità di invocare plug-in per visualizzare i formati non direttamente supportati Esempi: MS Internet Explorer, NS Mozilla,... Risponde alle richieste del browser Trasmettendo i dati richiesti (file html, immagini, applet, script flash,...) Invocando i programmi cgi Spesso include: un interprete per i principali linguaggi di scripting lato server...... una JVM per l esecuzione delle servlet... Esempi: MS Internet Information Server, Netscape Server, Apache Gianpaolo Cugola - Sistemi Informativi in Rete 5 Gianpaolo Cugola - Sistemi Informativi in Rete 6 Proxy e Firewall Linguaggi di scripting lato client Proxy Si pone come intermediario tra client e server Effettua il caching delle pagine web in maniera da migliorare le prestazioni percepite dall utente... Riducendo il traffico di rete Firewall Filtra le comunicazioni per aumentare la sicurezza In base al protocollo e/ o agli indirizzi sorgente e destinazione Generalmente: blocca tutte le comunicazioni provenienti dall esterno...... lascia passare le comunicazioni provenienti dall interno Gianpaolo Cugola - Sistemi Informativi in Rete 7 E possibile inserire piccoli programmi all interno del codice html (tag <script>) Tali programmi vengono interpretati dal browser Attraverso tali linguaggi è possibile definire pagine web dinamiche Il cui aspetto e contenuto cambia in risposta a eventi compiuti dall utente (es. click del mouse,...) Principali linguaggi: Javascript: simile a Java, standard (ECMA script), utilizzabile con tutti i principali browser VBscript: derivato dal Visual Basic, proprietario (MS), direttamente utilizzabile con il solo Internet Explorer Gianpaolo Cugola - Sistemi Informativi in Rete 8

Javascript: Esempio Applet <html> <head> <script language="javascript"> function red_blue(data) { if(data.style.color=="red") data.style.color="blue"; else data.style.color="red"; } </script> </head> <body bgcolor="#ffffff"> <h1 onclick="red_blue(this);">prova di javascript</h1> Cliccare sul titolo per cambiare colore. </body> </html> Gianpaolo Cugola - Sistemi Informativi in Rete 9 E possibile specificare (tag <applet>) che in un certo punto di una pagina web deve essere inserita una applicazione Java Il file.class dell applicazione viene scaricato dal server ed eseguito dal browser (che integra una JVM) Attraverso gli applet è possibile eseguire applicazioni di ogni tipo sul client scaricandole dinamicamente dal server Si tratta d un esempio di mobilità di codice Esempi di applet: Bottoni animati, banner pubblicitari, giochi, client per chat e altre applicazioni distribuite,... Gianpaolo Cugola - Sistemi Informativi in Rete 10 Plugin Flash Plugin: Programmi esterni che si integrano con l interfaccia del browser per gestire formati proprietari I browser più avanzati sono capaci di invocare plugin per gestire i formati che non vengono supportati direttamente Esempio: Macromedia flash player, plugin vrml,... Linguaggio definito da Macromedia per descrivere pagine multimediali animate Integra funzionalità di descrizione di pagina (orientate a pagine grafiche) con un linguaggio di scripting per la gestione delle animazioni e degli eventi utente Particolarmente indicato per pagine con grafica animata Gianpaolo Cugola - Sistemi Informativi in Rete 11 Gianpaolo Cugola - Sistemi Informativi in Rete 12

VRML: Virtual Reality Modeling Language CGI: Common Gateway Interface Si tratta di un linguaggio per la descrizione di ambienti ( mondi ) 3D...... contenenti hyperlink ad altri mondi o a pagine 2D in HTML Nell ultima versione supporta effetti complessi come luci di vario tipo, texture, effetto nebbia, meccanismi di collision detection, suoni...... e si integra con Java e Javascript per la gestione dinamica dei mondi Non è un estensione di HTML, bensì ne è un complemento, pertanto richiede browser o plug-in dedicati I mondi VRML possono essere creati a mano, ma solitamente vengono costruiti attraverso appositi editor grafici Si tratta di uno standard per interfacciare applicazioni esterne con server H TTP Esempi di utilizzo: generazione automatica di documenti prelevando dati da DB, interpretazione di dati provenienti da form, comunicazione con server applicativi di tipo diverso,... A fronte di una richiesta da parte del client viene eseguito sul server un programma che riceve come parametri i valori specificati nella richiesta Il programma produce una risposta che viene impacchettata dal server e instradata al client 14 CGI: Funzionamento Un URL può referenziare un programma Il server viene configurato in modo da tradurre particolari path (solitamente.../ cgibin) in invocazioni di programmi in particolari directory (ad es. / www/ scripts) http://www.ms.com/cgi-bin/prg.tcl/usr/info?choice=yes&q=high Directory CGI Programma Informazioni Extra Query data 15 Programmi CGI e comunicazione server-gateway I programmi CGI possono essere scritti in qualunque linguaggio di programmazione C, C++, Tcl, Perl, Bourne shell,... Esistono diverse librerie per l implementazione di programmi CGI Per estrarre i dati provenienti dal client...... e per generare la risposta La comunicazione tra server e gateway sfrutta speciali variabili d ambiente e/ o lo standard input per i dati in ingresso...... mentre i risultati sono prodotti dal gateway sullo standard output Una volta che il programma CGI ha generato una risposta, il server vi aggiunge tutti i campi necessari alla gestione del protocollo (codice di stato, autenticazione etc.) e la spedisce al client 16

Linguaggi di scripting lato server Servlet Invocare programmi esterni per generare pagine web al volo è molto costoso in termini prestazionali Per ottenere lo stesso risultato si possono usare script inseriti all interno della pagina html...... interpretati dal server per generare la pagina finale vera e propria Principali linguaggi oggi in uso: VBscript (ASP - Active Server Pages), Javascript (JSP - Java Server Pages), PHP (opensource) Programmi del tutto equivalenti ai programmi CGI ma scritti in Java, compilati, ed eseguiti in una JVM integrata nel server Usate per generare pagine al volo...... accedendo a DBMS esterni...... o comunicando con server applicativi di tipo diverso Più efficente rispetto alle tecnologie interpretate (si esegue codice Java compilato ) e anche rispetto al protocollo CGI (la JVM nella quale le servlet eseguono è integrata nel server web) Gianpaolo Cugola - Sistemi Informativi in Rete 17 Gianpaolo Cugola - Sistemi Informativi in Rete 18