Corso di laurea in INFORMATICA

Slides:



Advertisements
Presentazioni simili
Prof. Carla Fanchin – L.S. Tron
Advertisements

Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
Corso di Fondamenti di Informatica
Modulo 5 - posta elettronica
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
PHP.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Corso di laurea in INFORMATICA
Laboratorio Informatica – I lezione
IL NOSTRO LABORATORIO. Di INFORMATICA..
Web e HTTP Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
Come programmare servizi di rete?
File.
Canale A. Prof.Ciapetti AA2003/04
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Modello del sistema di posta Elettronica
Architettura del World Wide Web
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Posta elettronica ( ) chiocciola" comunemente letta at Identificativo dellutente Identificativo del computer centrale sul quale risiede.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Internet Explorer Il browser.
Struttura dei sistemi operativi (panoramica)
Cos’è un problema?.
23 novembre 2000IAT-CNR Progetto Biblio MIME 1 Consiglio Nazionale delle Ricerche Area di Ricerca di Bologna Istituto per le Applicazioni Telematiche di.
Posta elettronica : per iniziare : per iniziare Primi passi con la posta elettronica Primi passi con la posta elettronica
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
Introduzione alle basi di dati
DBMS ( Database Management System)
Corso di Informatica per Giurisprudenza Lezione 7
WORLD WIDE WEB Il World Wide Web (Web, WWW o W3) è un'architettura software utilizzata per fornire l'accesso e la navigazione ad un insieme molto vasto.
Modulo 7 – reti informatiche u.d. 1 (syllabus – )
Usare la posta elettronica con il browser web
Cos’è Internet Una rete globale di reti basata sul protocollo TCP/IP.
Internet L’essenziale.
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
Server Web in una rete Windows Sommario Meccanismi di accesso remoto Meccanismi di accesso remoto Introduzione ai Server Web Introduzione ai Server.
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
Il Sistema Operativo (1)
Un trucchetto di Moltiplicazione per il calcolo mentale
1 Ripassino Reti di Computer Carasco 19/02/ Che cosa è una rete informatica? Una rete informatica è un insieme di computer connessi tra di loro.
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
Gianpaolo Cecere Introduzione
Il World Wide Web Lidea innovativa del WWW è che esso combina tre importanti e ben definite tecnologie informatiche: Documenti di tipo Ipertesto. Sono.
Sistemi di Elaborazione dellInformazione Modulo 3 -Protocolli applicativi Unità didattica 4 -Protocolli del Web Ernesto Damiani Lezione 4 – Caching HTTP.
Modulo n – U.D. n – Lez. n Nome Cognome – titolo corso.
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
Internet.
prof.ssa Giulia Quaglino
FTP File Transfer Protocol
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Creato da Riccardo Nuzzone
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
Internet e HTML Diffusione di informazioni mediante la rete Internet.
Configurazione IP4a-1 Configurazione IP Reti II Stefano Leonardi.
InternetInternet Sede: Salvo D’acquisto 2010/2011 Docente: Vito Monno.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
INTRODUZIONE A INTERNET
Servizi Internet Claudia Raibulet
CORSO INTERNET la Posta elettronica
Eprogram informatica V anno.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
INTERNET E INTRANET Classe VA SIA. La Storia di INTERNET ’ – ARPANET 1969 – anno di nascita università Michigan - Wayne 1970 – – INTERNET.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Eprogram informatica V anno. Programmare in rete.
Livello 7: Applicazione. Protocolli più importanti HTTP = Hyper Text Transfer Protocol HTTPS = Hyper Text Transfer Protocol over Secure Socket Layer DNS.
Socket programming in Java La realizzazione di un server in Java consente di scrivere una sola versione eseguibile su diverse piattaforme. Il linguaggio.
Transcript della presentazione:

Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli Applicativi Alberto Polzonetti alberto.polzonetti@unicam.it

Come accedere alle applicazioni APPLICAZIONE APPLICAZIONI SMTP FTP TELNET DNS SNMP NFS PRESENTAZIONE SESSIONE TRASPORTO TCP UDP RETE ICMP IP ARP RARP IGMP COMUNICAZIONE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE FISICO Una applicazione deve prima comunicare al software di protocollo che sta aspettando l’arrivo di un messaggio di un tipo specificato e poi si mette in attesa Quando il protocollo riceve un messaggio che corrisponde esattamente al tipo specificato lo passa applicazione Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Argomenti Modello client-server Procedure di inizializzazione Domain Name System Protocolli per la posta elettronica Protocolli per trasferimento files Protocollo HTTP e web server/client Lezione 14( 03/04) Protocolli Applicativi

Modello client - server Il server attende passivamente di essere contattato, mentre il client avvia il processo di comunicazione Applicazione server Programma specializzato Dedicato all’erogazione di un servizio Può servire più di un client alla volta Automaticamente invocato all’avvio del sistema Attende passivamente di essere contattato dai client Accetta richieste da client arbitrari,ma offre un solo servizio Calcolatore condiviso e macchina potente Applicazione client Generico programma Si comporta da client quando richiede l’uso della rete Esegue anche elaborazioni in locale È invocata direttamente dall’utente È eseguita localmente sul computer dell’utente Contatta attivamente un solo server alla volta Non richiede dispositivi dedicati Lezione 14( 03/04) Protocolli Applicativi

Interazione tra client e server dati j k Trasporto dati j k Trasporto dati j k A E Rete dati j k A E Rete dati j k A E 95 77 collegamento dati j k A E 95 77 collegamento Internet Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Servizi multipli TRASPORTO INTER-RETE SCHEDA DI RETE TRASPORTO INTER-RETE SCHEDA DI RETE TRASPORTO INTER-RETE SCHEDA DI RETE Client 1 Client 2 Server 1 Server 2 Un calcolatore di classe server può offrire contemporaneamente più servizi, ciascuno dei quali è erogato da una specifica applicazione server Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Creazione dinamica (1) Erogazione dello stesso servizio a più client senza che questi debbano mettersi in coda TCP client Porta effimera Porte effimere serverfiglio Server padre Porta nota usata solo per l’apertura della connessione Server parallelo con connessioni Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Creazione dinamica (2) Erogazione dello stesso servizio a più client memorizzati in una coda in attesa di essere processati UDP client Porta effimera Porta nota Server Un client alla volta Server sequenziale senza connessioni (specifici per server che usano UDP) Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Interfaccia socket Le applicazioni client e server comunicano tramite i protocolli di trasporto Le applicazioni debbono fornire al protocollo molte informazioni API (Application Program Interface): insieme di procedure che le applicazioni possono invocare API non è definita all’interno dei protocolli di comunicazione, ma parte dei sistemi operativi residenti Interfaccia SOCKET standard de facto Nel sistema UNIX BSD l’interfaccia socket è parte del sistema operativo Molti produttori aggiungono le socket ai loro sistemi Librerie di procedure (Libreria delle Socket) Mettono a disposizione delle applicazioni un API Socket anche se il sistema operativo sottostante non le prevede Quando le applicazioni chiamano una procedura della libreria essa invoca le funzioni del proprio sistema operativo per ottenere l’effetto desiderato Lezione 14( 03/04) Protocolli Applicativi

DESCRITTORE SOCKET Procedura SOCKET Fam_prot Tipo Protocollo sd La comunicazione tramite socket si basa sul concetto di descrittore Il descrittore rappresenta un oggetto Le procedure sono metodi applicati all’oggetto Flessibilità nello scrivere una sola applicazione per il trasferimento di dati verso destinazioni di natura diversa Il descrittore può individuare un file I dati saranno scritti sul file Il descrittore può individuare una socket I dati saranno trasferiti verso una applicazione di rete Procedura SOCKET Crea una socket e restituisce il descrittore sd=socket(fam_prot,tipo,protocollo) Fam_prot Famiglia dei protocolli da usare (PF_INET per TCP/IP) (PF_DECnet per DEC) Tipo Modalità di comunicazione Trasmissione orientata alla connessione (SOCK_STREAM) Trasmissione priva di connessione (SOCK_DGRAM) Protocollo Il particolare protocollo di trasporto 0 nel caso TCP/IP sd Descrittore (numero naturale) che individua il socket (-1 for error) Lezione 14( 03/04) Protocolli Applicativi

PROCEDURE SOCKET Procedura close sd Procedura bind sd ind_locale Richiede al sistema la chiusura di una socket Close (sd) sd Descrittore (numero naturale) che individua il socket Procedura bind Lega un socket ad un indirizzo socket locale, cioè definisce il valore dell’indirizzo socket locale Bind (sd,ind_locale,lungh_ind) sd Descrittore (numero naturale) che individua il socket ind_locale Indirizzo locale da assegnare alla socket lungh_ind Intero che rappresenta la lunghezza dell’indirizzo Di solito i client non chiamano la funzione BIND perche dell’indirizzo socket locale se ne occupa il sistema operativo Procedura listen Rende la socket passiva sul server per poterla usare per ricevere dati dal client Listen (sd,lungh_coda) lungh_coda Massima lunghezza della coda Lezione 14( 03/04) Protocolli Applicativi

PROCEDURE SOCKET (continua) Procedura accept Chiamata dal server e rimuove la prima richiesta di connessione dalla coda corrispondente. Nuova_socket=accept( sd, ind_client,lungh_ind_client) Riempie i campi ind_client con l’indirizzo del client che inoltra la richiesta, crea una nuova socket e ne ritorna il descrittore al server Procedura connect Usata dal client per collegarsi al server Connect(sd,ind_server,lungh_ind_server) Procedura send Trasferisce i dati in una comunicazione orientata alla connessione Send(sd,dati…..) Procedura recv Riceve i dati in una comunicazione orientata alla connessione Recv(sd, buffer, …..) Procedura sendto Trasferisce i dati in una comunicazione priva di connessione Send(sd,dati, ind_dest…..) Procedura recvfrom Riceve i dati in una comunicazione priva di connessione Recv(sd, buffer, ind_mitt,…..) Lezione 14( 03/04) Protocolli Applicativi

Esempio per server parallelo con connessioni ripetizione accept Close accepting socket bind listen socket connect recv processo send ripetizione Close accepting CLIENT ripetizione send recv Close CHILD Lezione 14( 03/04) Protocolli Applicativi

Esempio per server sequenziale senza connessioni socket bind socket CLIENT ripetizione sendto recvfrom Close ripetizione recvfrom processo sendto Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Inizializzazione L’insieme delle operazioni che hanno luogo all’avvio dei calcolatori è noto come bootstrap Caricamento dei protocolli Protocolli sono integrati con il sistema operativo Si sfrutta la rete nel processo di boot I protocolli vanno configurati È necessario fornire al protocollo informazioni (parametri) sul sistema Indirizzo IP Indirizzo del router principale Maschera di sottorete Indirizzo del server DNS Indirizzo del server delle stampanti Indirizzi di altri server Lezione 14( 03/04) Protocolli Applicativi

Configurazione di protocolli Configurazione basata sull’accesso al disco (file di configurazione) nome_parametro = valore Configurazione automatica RARP ICMP Richiesta maschera degli indirizzi Scoperta del router Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Protocollo BOOTP Il protocollo di bootstrap (BOOTP) è un protocollo progettato per ottenere le informazioni di rete (IP, mask, default gateway, name server) quando vengono installate macchine prive di disco CLIENT SERVER 67 UDP Apertura passiva richiesta Porta mittente Porta destinatario IP mitt IP destinat CLIENT SERVER 67 UDP Richiesta 68 richiesta 68 67 Tutti 0 Tutti 1 CLIENT SERVER 67 UDP Risposta 68 risposta 67 68 Indirizzo unicast del server Indirizzo unicast del client Lezione 14( 03/04) Protocolli Applicativi

Dynamic Host Configuration Protocol (DHCP) BOOTP è un protocollo di configurazione statico DHCP è una estensione di BOOTP pensata per permettere procedure di configurazione dinamiche e con esso compatibile Un server DHCP ha due data base Uno per la configurazione statica Uno contiene certi numeri di indirizzi IP da assegnare in “leasing” Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi DHCP:funzionamento Fase 1 : DHCPDISCOVER Il client cerca di acquisire un indirizzo IP Inviato in broadcast Include il MAC address Fase 2 : DHCPOFFER Inviato da qualsiasi server DHCP che riceve la richiesta discover Offerta indirizzo IP e tempo di leasing Il server congela l’indirizzo IP offerto Fase 3 : DHCPREQUEST Il client sceglie le offerte ricevute e ne invia uno al server FASE 4 : DHCPACK Conferma da parte del server Creazione della corrispondenza tra MAC ed IP Rinnovi di licenza Ogni volta che un client DHCP si riavvia Al 50% del tempo Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Nomi di Dominio INDIRIZZI IP 151.100.20.152 Registro Nomi sistema di registrazione unificato Domain Name System (DNS) un nome è decodificato da destra verso sinistra la parte più a destra è definita zona it uniroma1 let cri cri.let.uniroma1.it Per non doversi ricordare tutte le volte un indirizzo numerico, le varie reti che partecipano a Internet si sono accordate per definire uno standard di nomi alfanumerici, in modo che l'utente debba digitare ad esempio HTTP://WWW.MUSEOSCIENZA.ORG, e poi l'indirizzamento avvenga automaticamente verso l'indirizzo numerico giusto. La traduzione dell'indirizzo da caratteri a numeri e' il compito di specifici computer chiamati Name Server Questo sistema di nomi e' il Domain Name System (DNS) Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Segmenti di un nome Il DNS non richiede l’uso di uno specifico numero di segmenti né richiede cosa debbano rappresentare Per il livello più alto (top level) il DNS : Stabilisce i valori possibili Stabilisce il loro significato Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi I magnifici sette TLD Icann (Internet Corporation for Assigned Names and Numbers), l'organizzazione internazionale che sovrintende alla gestione degli indirizzi sulla Rete. .aero (proposto dalla Società Internazionale de Telecomunications Aeronatique); .biz (proposto da IV-Team); .coop (National Cooperative Business Association); .info (Afilias); .museum (proposto da Museum Domain Management Association); .name (Global Name Registry); .pro (Registry Pro). L'Icann ha invece respinto molti top Level Domain proposti, come .health (per la salute) , .travel (per i viaggi) , .union, .web e .kids. Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi UNA PORZIONE DEL DNS Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Gerarchia dei nomi com bar sport caffè gelato panna nocciola cioccolato caffè.barsport.com panna.gelato.barsport.com Lezione 14( 03/04) Protocolli Applicativi

Modello client-server DNS: gerarchia Root server Root server com bar sport caffè gelato panna nocciola cioccolato com bar sport caffè gelato panna nocciola cioccolato Server di barsport.com Server di barsport.com Server di gelato. barsport.com Server di panna.gelato. barsport.com Lezione 14( 03/04) Protocolli Applicativi

Collegamento tra i server (regole) I server DNS sono collegati fra loro e formano un sistema unitario Ogni server è in grado di contattare un root server Ogni server è in grado di contattare tutti i server dei livelli inferiori della gerarchia I root server hanno per zona di controllo l’intero spazio dei nomi di dominio (attualmente ne sono 13) Server primario Possiede un file relativo alla zona di sua responsabilità Sono di sua competenza la gestione e l’aggiornamento del file Server secondario Riceve le informazioni relative ad una certa zona da un altro server primario o secondario Non gestiscono i file Duplica il server primario e può essere utile in caso di problemi di quest’ultimo Lezione 14( 03/04) Protocolli Applicativi

Risoluzione di indirizzi Il processo che associa un nome ad un indirizzo IP è detto risoluzione di indirizzo Un host che debba risolvere un indirizzo si rivoge ad un client DNS che si chiama resolver Il resolver Invia una richiesta al DNS server più vicino Il server DNS Invia la risposta se è in grado autonomamente di risolvere l’indirizzo Oppure Si rivolge ad un altro server (risoluzione ricorsiva) Comunica al resolver l’indirizzo di un altro server (risoluzione iterativa) Associazione di un indirizzo ad un nome (risoluzione inversa) L’indirizzo IP viene invertito e gli vengono aggiunti i suffissi in-addr e arpa Es. 132.34.45.121  121.45.34.132.in-addr.arpa Lezione 14( 03/04) Protocolli Applicativi

Risoluzione ricorsiva Root server 3 6 7 8 9 10 edu 2 com 4 5 Fhda.edu 1 client Mcgraw.com Lezione 14( 03/04) Protocolli Applicativi

Risoluzione Iterativa Root server 6 5 edu 3 4 com 7 8 Fhda.edu 1 2 client Mcgraw.com 9 10 Lezione 14( 03/04) Protocolli Applicativi

Ottimizzazioni delle prestazioni Replica su altri server Caching Risposta non autorevole Dynamic Domain Name System (DDNS) Quando viene costituita una nuova corrispondenza nome-indirizzo viene inviato messaggio DHCP ad un server primario Si aggiorna il file di zona Si notifica al server secondario Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Messaggi DNS messaggi richiesta risposta Header 12 byte Record richieste Record risposte Risposte autorevoli Sezione supplementare Header 12 byte Record richieste Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Record richiesta 5 a d m i n 3 t c 4 f h e u Query name Query type Query class 1 A Richiesta di indirizzo IPv4 2 NS Richiesta name server 5 CNAME Alias 15 MX Indirizzo e-mail 28 AAAA Richiesta indirizzo IPv6 …. …… ………… 1 IN internet Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Record Risposta dominio name domain type domain class Tempo residuo Lunghezza risposta RISPOSTA Lezione 14( 03/04) Protocolli Applicativi

Servizi di un programma di posta (1) Aliasing rappresenta la capacità di definire dei nome simbolici per i propri corrispondenti postali in luogo degli indirizzi veri e propri. Per esempio si può decidere che edk sia una efficiente abbrevazione per krol@ux1.cso.uiuc.edu. Folder (cassette postali) Rappresenta la capacità di organizzare la propria posta in opportune caselle postali organizzate secondo un criterio. Ad esempio si possono organizzare caselle con argomenti personali, con avvisi di seminari e con la corrispondenza che si tiene con una determinata persona. Forwarding (ritrasmissione) Ha il significato di ritrasmettere la posta ricevuta sul proprio computer ad un altro utente su un altro computer che può essere interessato a questo argomento. Lezione 14( 03/04) Protocolli Applicativi

Servizi di un programma di posta (2) Inclusione di file testo Si possono trasmettere interi documenti di tipo testo per posta elettronica senza andare ad usare utility tipo FTP. Mailing List Rappresenta la capacità di trasmettere un messaggio ad un gruppo di persone senza dover trasmettere lo stesso messaggio ad ognuna di esse. Reply Rappresenta il modo più rapido per mandare un messaggio in risposta ad uno precedentemente ricevuto, in quanto il sistema ricopia automaticamente l'indirizzo del mittente inserendolo nella parte destinazione del messaggio da trasmettere. Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Funzionamento Mailer Mail program, mail application, mailer client Software che permette di gestire, leggere e scrivere la posta elettronica Mail Server Computer la cui funzione ricevere, registrare e consegnare la posta elettronica Mailbox File appositamente formattato per registrare i messaggi e-mail e le informazioni correlate Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi SMTP (Single Mail Transfer Protocol): utilizzato per inviare posta elettronica Lezione 14( 03/04) Protocolli Applicativi

POP (Post Office Protocol ): utilizzato per ricevere posta elettronica Lezione 14( 03/04) Protocolli Applicativi

Mail Server store and forward Lezione 14( 03/04) Protocolli Applicativi

Mail Server Central Mail Spool (Internet Message Access Protocol) Lezione 14( 03/04) Protocolli Applicativi

Uso della posta elettronica per trasmettere files ASCII ristretto ed ASCII esteso Impossibile trasmettere un file binario La codifica avviene utilizzando lo standard MIME (Multipurpose Internet Mail Extension) MIME permette a mittente e destinatario la libertà di scegliere lo schema di codifica Il mittente include nell’intestazione una riga che indica l’uso di MIME e nel corpo alcune informazioni che specificano il tipo dei dati inviati e lo schema di codifica adottato. MIME-version: 1.0 Content-type: text/plain Lezione 14( 03/04) Protocolli Applicativi

Trasferimento dei file Il sevizio di trasferimento file più diffuso in Internet segue il Protocollo di Trasferimento dei File (FTP) Protocollo generale Trasferimento files di natura arbitraria Controllo degli accessi Superamento delle differenze dei diversi sistemi operativi Il protocollo è stato pensato per essere usato in maniera batch o interattiva Nella maniera interattiva le richieste dei client avvengono mediante una interfaccia di comando Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi FTP Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Comandi e sessione FTP Collegamenti ed autorizzazioni ftp stabilisce una connessione di controllo prima di iniziare a trasferire i dati Si deve fornire una login e password La connessione di controllo rimane attiva fintantoché gli utenti non la chiudono esplicitamente Accesso anonimo Anonymous FTP (account speciale usato solo con ftp) Trasferimento bidirezionale Per ottenere file: get oppure mget Per depositare files : send oppure mput Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Comandi e sessione FTP Nomi dei file e caratteri jolly Es: li* Possibili differenze di formato di lunghezza dei nomi Cartelle cd nome cartella Cdup Ls  esamina contenuto cartella Tipi di file e modalità di trasferimento Modalità testuale  ascii Modalità binaria  binary Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Esempio di utilizzo Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Esempio di utilizzo Lezione 14( 03/04) Protocolli Applicativi

Connessione dati e di controllo Le connessioni di controllo usate esclusivamente per trasmettere comandi e ricevere le relative risposte Per trasferire i dati si richiede una autonoma connessione creata ex-novo e chiusa alla fine del trasferimento Sono usate porte diverse per evitare conflitti Vantaggi: Eliminazione di ambiguità tra comandi e dati Possibilità di attivare comandi anche quando è in corso una connessione dati Mittente e destinatario applicano lo stato convenzionale di fine file eof Client FTP Server FTP Connessione dati 21 20 Connessione di controllo Lezione 14( 03/04) Protocolli Applicativi

Altri protocolli relativi ai file Trivial File Transfer Protocol (TFTP) Usa UDP Scarso set di comandi e richiesta di meno memoria Network File System (NFS) Servizio di accesso ai files che permette ai client di modificare o copiare porzioni di files Il client NFS invia al server NFS interessato i dati e la richiesta di scrittura, il server procede alla scrittura ed avvisa il client dell’avvenuta operazione L’interfaccia NFS è integrata con il file system del calcolatore Condivisione di cartella Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Web Server Un World Wide Web server distribuisce i documenti richiesti Il Web Server opera nella rete per questo servizio con un protocollo che si chiama http [Hypertext Transfer Protocol] Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Web Server Web client Web Server Richiesta http del client Web client Replica http del server Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi CLIENT WEB BROWSER VISUALIZZATORI DELLE INFORMAZIONI REPERIBILI IN LINEA SU QUESTO O QUEL SERVER (interfaccia utente – internet) INTERPRETA IL CODICE HTML SINGOLARI PER CAPACITA’ E STRUTTURAZIONE PROPRIA Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Che cosa è HTML HyperText Markup Language [HTML] (linguaggio di etichettatura per gli ipertesti) è il linguaggio del World Wide Web. Si marcano i files testo con puntine HTML (TAG) in modo tale che essi possano essere letti localmente o in rete da i BROWSER. I TAG sono codici evidenziati dai simboli < e > ; i BROWSER leggono ed interpretano questi codici per formattare il documento sullo schermo Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Capacità di HTML Formattazione di documenti Abilità di includere collegamenti (HYPERLINKS) che puntano a documenti o servizi di altri computer Un vasta possibilità di presentare liste Creazione di testi preformattati Visualizzazione di immagini grafiche che possono essere anche usate come punti di collegamento e di mappe grafiche collegabili in punti diversi Creazione di tabelle e di “forms” Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Standard HTML non descrive un testo come un linguaggio di programmazione Si limita ad evidenziare il contenuto del file con una serie di attributi che sono stati precedentemente definiti il linguaggio ufficiale HTML è dunque uno specifico insieme di TAG che tutti i browser dovrebbero interpretare alcuni browser sono capaci di interpretare TAG addizionali al di fuori degli standard Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Come lavora il browser FUNZIONI BASE trasmissione richiesta ricevimento dati visualizzazione informazioni MODO: GRAFICO NON GRAFICO Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Come lavora il browser HELPER APPLICATIONS del proprio computer abilitano ad altre funzioni: ftp e-mail news telnet etc... suoni & video Le preferenze impostate determinano come viene visualizzato il documento Lezione 14( 03/04) Protocolli Applicativi

FUNZIONAMENTO DEL BROWSER Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi MOSAIC TIM Barners-Lee .Ha sviluppato nel 1989 il World Wide Web coordinando il lavoro del primo browser tra CERN e NCSA Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi NETSCAPE Netscape fondata nel 1994, è al suo terzo anno di vita, l’azienda a più veloce sviluppo della storia americana. l’utile netto del 96 è stato di 21 milioni di dollari su 346 milioni di fatturato incremento sull’anno precedente del 305%. dimensioni della azienda si sono quadruplicate e si è arrivati a circa 2000 dipendenti Tutto è cominciato nel 1995 con l’entrata in funzione del Web ; la Netscape è stata la più veloce a comprendere l’importanza di questa innovazione nel mondo Internet, lanciando Navigotor indispensabile per orientarsi in una ragnatela mondiale che diventa ogni giorno più intricata. James H. Clark Lezione 14( 03/04) Protocolli Applicativi

MICROSOFT INTERNET EXPLORER Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi INDIRIZZO (URL) http://www.geocities.com/SiliconValley/Park/index.htm COME: http:// - Hyper Text Transef Protocol, il protocollo di trasmissione di ipertesti DOVE : www.geocities.com - Il nome del server QUALE: /SiliconValley/Park/ - La parte del computer del server (geocities) dove è la pagina. "index.htm" è il nome della pagina. Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Che cosa è una URL Uniform Resource Locator[URL] rappresenta la chiave per localizzare ed interpretare le informazioni in Internet. E’ la maniera standard per descrivere sia la locazione della risorsa che il suo contenuto SINTASSI STANDARD : nomeservizio://indirizzohost/risorsa Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Differenti servizi http://www.unicam.it/university/unitoper/chimica/index.html ftp://camcic.unicam.it/pub gopher://camcic.unicam.it/ news:news.announce.conference telnet://camcic.unicam.it mailto:aulac@camcic.unicam.it file://esemp01.html Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Server WEB Server WEB = piattaforma + software + informazioni computer Hard disk documenti RETE httpd HTTP Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi HTTP Protocollo per il trasporto degli ipertesti (HyperText Transport Protocol) Permette al browser di richiedere uno specifico documento Permette al server web di trasmetterlo lungo la connessione Il protocollo definisce il formato delle richieste e delle risposte Fino a tutto il 97’ browser e server erano implementati con la versione HTTP/1.0 definita da RFC 1945 Di seguito è stata implementata la versione HTTP/1.1 definita da RFC 2616 Le due versioni sono compatibili Lezione 14( 03/04) Protocolli Applicativi

Penetrazione dei server web Server Number Percentage Apache 20.866.868 56.87% Microsoft-IIS 11.096.896 30.25% Netscape-Enterprise 1.295.353 3.53% Lezione 14( 03/04) Protocolli Applicativi

Architettura dei server WEB Attendono la richiesta di connessione da parte del browser Accettano la richiesta Attendono la richiesta di uno specifico documento Inviano una copia lungo la connessione Chiudono la connessione Ricominciano da capo Lezione 14( 03/04) Protocolli Applicativi

Connessioni e servizi web Richiesta HTTP Risposta HTTP Porta di default del server 80 Altri servizi web implementati su altre porte es. 8080, 8081 http://www.server.org/pippo.html http://www.server.org:8080/pippo.html Server virtuali supportata da un estensione del sistema operativo denominata supporto host virtuale Connessioni non permanenti e permanenti Lezione 14( 03/04) Protocolli Applicativi

Formato generale di una richiesta metodo SP URL Versione CR LF Linea di richiesta campo nome intestazione : valore Linea di intestazione . Corpo dell’entità Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Linea di richiesta METODO GET Restituisce l’oggetto HEAD Restituisce solo le informazioni sull’oggetto POST Input dei forms Altri metodi URL url del documento VERSIONE Versione http Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Linea di intestazione CAMPO VALORE User agent Tipo di browser che effettua la richiesta Accept I tipi MIME che il browser è preparato ad accettare Host Nome dell’host a cui connettersi Connection Tipo di connessione Authorization La password dell’utente If Modified Since Richiede che l’oggetto venga restituito solo se più recente della data specificata Lezione 14( 03/04) Protocolli Applicativi

Esempio di una richiesta GET SP Somedir/page.html HTTP/1.1 CR LF Linea di richiesta HOST : www.school.net Linea di intestazione Connection close User-agent Mozilla/4.0 Accept-language fr Quando il metodo è GET non è usato il corpo dell’entità Lezione 14( 03/04) Protocolli Applicativi

Formato generale di una risposta Versione SP Codice di stato Frase CR LF Linea di stato campo nome intestazione : valore Linea di intestazione . Corpo dell’entità Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Linea di stato Versione Versione protocollo Codice di Stato e Frase 200 OK 301 Moved Permanently 400 Bad Request 404 Not Found 505 HTTP Version non supported Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Linea di intestazione CAMPO VALORE Date Data in cui la risposta è stata creata Server Tipo di software che ha creato la risposta Last-Modified Ultima modifica dell’oggetto trasferito Connection Tipo di connessione Content-Lenght Numero di byte dell’oggetto da spedire Content-Type Tipo MIME dell’oggetto Content-Encode Ulteriore codifica Lezione 14( 03/04) Protocolli Applicativi

Esempio di una risposta HTTP/1.1 SP 200 OK CR LF Linea di stato Connection : Close Linea di intestazione Date Thu, 06 Aug 1998 12:00:15 GMT Server Apache/1.3.0 (UNIX) Last-Modified Mon, 22 jun 1998 09:23:24 GMT Content-Lenght 6821 Content-Type Text/html OGGETTO Lezione 14( 03/04) Protocolli Applicativi

Autenticazione e cookie Il client invia un messaggio di richiesta ordinario Server risponde con codice di stato 401 Authorization Required e con intestazione WWW-Authenticate: Il client risponde con Authorization: completa di user name e password Dopo aver ottenuto il primo oggetto il client continua sempre ad inviare il campo Authorization Il server invia una intestazione Set cookie : 1678453 Il client appende una linea ad uno speciale file cookie che comprende il nome dell’host associato all’identificazione Nelle richieste successive allo stesso server il client include una intestazione Cookie : 1678453 Il server sa che questo utente ha fatto una richiesta la settimana prima Lezione 14( 03/04) Protocolli Applicativi

ARCHITETTURA dei BROWSER driver Interprete facoltativo Interprete HTML Output inviato allo schermo Unità di controllo Input dal mouse o dalla tasiera Client facoltativo Client HTTP Scheda di rete Comunicazione con il server WEB Richiesta di riferimento hyperlink Esecuzione di un interprete per visualizzare i contenuti Esecuzione di un client per acquisire il documento Lezione 14( 03/04) Protocolli Applicativi

Architettura del browser Interprete Accetta in ingresso un testo ASCII Fornisce in uscita il testo impaginato Tiene traccia delle relazioni intercorrenti fra le posizioni sullo schermo degli oggetti selezionabili e le ancore presenti inhtml, perché il browser sfrutta la posizione dell’oggetto per determinare quale riferimento eseguire Client facoltativi Client per altri servizi da effettuare in maniera trasparente per l’utente (ftp, e-mail, ecc..) Cache Migliora la rapidità di accesso ai documenti Lezione 14( 03/04) Protocolli Applicativi

Cache del client : GET condizionato Richiesta client GET /fruit/kiwi.gif HTTP/1.0 Risposta server HTTP/1.0 200 OK Date: wed, 12 aug 1998 15:39:12 Server: Apache/1.3.0 (unix) Last-Modified: Mon, 22 jun 1998 09:23:24 Content Type: image/gif Il client memorizza l’oggetto nella propria cache Richiesta client dopo una settimana GET /fruit/kiwi.gif HTTP/1.0 If-modified-since: Mon, 22 jun 1998 09:23:24 Risposta server HTTP/1.0 304 NOT MODIFIED Date: wed, 19 aug 1998 20:39:12 Server: Apache/1.3.0 (unix) CORPO DELL’ENTITA’ VUOTO Lezione 14( 03/04) Protocolli Applicativi

Cache del web server: proxy server Il browser stabilisce una connessione TCP con il proxy server ed invia una richiesta HTTP di un oggetto Se l’oggetto cercato è nel proxy, questo inoltra l’oggetto nel messaggio di risposta Se l’oggetto cercato non c’e’, il proxy apre una connessione TCP con il destinatario originale ed invia una richiesta HTTP dell’oggetto specificato Quando il proxy riceve l’oggetto ne archivia una copia nella memoria locale ed invia l’oggetto all’interno di un messaggio di risposta HTTP Lezione 14( 03/04) Protocolli Applicativi

Vantaggi di un server proxy Riduzione dei tempi di risposta Riduzione consistente di traffico internet Infrastruttura per la rapida diffusione dei contenuti richiesti Analisi del traffico in uscita Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Tipi di documenti WEB Documenti statici Documenti Dinamici Il server deve eseguire una applicazione (SCRIPT) in presenza di una richiesta Il server riceve l’output dall’applicazione e lo restituisce al client Documenti attivi Non sono specificati in tutto e per tutto dal server Consistono in una applicazione che il server invia al richiedente Il browser esegue l’applicazione localmente ed il risultato rappresenta il documento attivo Hanno la capacità di aggiornarsi continuamente Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi DOCUMENTI STATICI Il documento risiede su un file associato al web server Sono in forma testuale (text/plain o text/html) Il contenuto e’ determinato dall’autore al momento della creazione Rimangono invariati fino a che non sono modificati dall’autore Vantaggi Facili da creare Sono visualizzati velocemente dal browser Svantaggi Interazione limitata Tendono a invecchiare per mancata manutenzione Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Documenti dinamici Il documento non esiste in un forma predefinita Il documento e’ generato dal server su richiesta del browser Il contenuto può variare tra una richiesta e l’altra Il server contiene un programma (compilato o interpretato) il cui output e’ restituito al browser il browser mostra l’output come una pagina HTML Vantaggi Generano il contenuto dipendentemente dall’input dell’utente Svantaggi Necessita’ di programmare per la creazione automatica del contenuto (qualsiasi linguaggio interpretato o eseguito dal server) Non esistono standard L’input può essere validato solo dal server Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Documenti Dinamici Common Gateway Interface Standard che stabilisce le modalità di interazione tra server web ed applicazioni Procedura di interazione il browser invia al server Web una richiesta facendo riferimento al nome dell’applicazione seguita da una serie di parametri; il server Web riconosce che la richiesta deve essere indirizzata all’applicazione specificata e ne attiva un’istanza passandole opportunamente i parametri l’applicazione effettua l’elaborazione in base ai parametri acquisiti e crea sullo standard output un flusso di dati che costituisce la pagina di risposta per il browser. il server Web cattura il flusso di dati generato dall’applicazione CGI e la trasforma in una risposta HTTP Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Applicazioni CGI L’applicazione CGI(programma CGI) può essere uno script di shell del sistema operativo uno script di un linguaggio interpretato (ad esempio Perl) una applicazione vera e propria sviluppata con un qualsiasi linguaggio di programmazione e che segue alcune regole per interfacciarsi con il Web. I programmi CGI e il server comunicano principalmente attraverso quattro modi: Variabili ambientali di sistema Comando di linea (usato per eseguire il programma CGI in una shell di sistema operativo) Standard Input (usato soprattutto con il metodo POST) Standard Output Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Standard Output il server lascia libero il programma CGI di determinare il tipo di dati da inviare al client, ovviamente entro i limiti delle possibilità offerte dal protocollo HTTP. Perciò il programma CGI non è tenuto a generare necessariamente un documento HTML, ma può trasmettere anche un tipo diverso di dati, secondo quanto previsto dallo standard MIME Ciò dà la possibilità di integrare in Internet l'interattività delle form con la multimedialità offerta dal protocollo HTTP. In generale, il programma CGI, come operazione preliminare, deve inviare sullo Standard Output una intestazione in cui viene specificato il tipo di dati inviato. Tale intestazione consiste nell'assegnazione "Content- type: MIME type" seguita da una o più linee vuote. Basta specificare questa informazione: sarà poi il server a formare il pacchetto completo per il client Per esempio, l'intestazione che deve precedere l'invio di un documento HTML da parte di un programma CGI è la seguente: Content-type: text/html * una o più linee vuote (LF o CRLF) * Lezione 14( 03/04) Protocolli Applicativi

Limiti della programmazione CGI Carico di elaborazione per il server L’interfaccia non supporta un insieme esaustivo di tipi di dati L’interfaccia non supporta controllo dei dati imessi dalla parte del client L’utente deve premere <submit> per ogni coinvolgimento del server Tenere traccia dello stato tra due richieste e’ complesso e inefficiente Tuttavia, la manutenzione delle applicazioni e’ semplice: le modifiche ai dati comportano solo modifiche allo script e ai form acceduti dai client Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Documenti attivi Il documento non è completamente specificato dal server Consiste di un programma che e’ scaricato dal server sul browser Il browser deve essere in grado di eseguire il programma Il programma interagisce con l’utente tramite tastiera e mouse Il display è aggiornato senza che sia richiesta una connessione al server il programma può leggere/scrivere file locali e contattare altri servizi Internet Vantaggi Massima flessibilità: client dinamici Interfacce utente più avanzate (es. toolbar) Maggiori funzionalità disponibili Svantaggi Browser più complesso il programma deve poter essere eseguito su tutti i computer o quasi Non esistono standard: applet Java, JavaScript, Jscript, VBScript, ActiveX controls Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi JAVA Java e’ utilizzabile per la creazione di documenti web attivi Java e’ un linguaggio di programmazione sviluppato da pochi programmatori Sun (James Gosling et al.) nel 1994 stile simile al C++ ma principi presi da Smalltalk pensato come linguaggio di embedded software per piccoli dispositivi non computer adattato per essere un linguaggio per la programmazione di applicazioni distribuite web-based e cross-platform Java e’ una piattaforma software Java Virtual Machine (VM): fornisce un ambiente runtime per l’esecuzione di un programma Java Java API: librerie di classi riusabili isolano le dipendenze dal sistema Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Programmi JAVA JDK (Java Development Kit) include un compilatore a linea di comando javac traduce codice sorgente Java in bytecode (rappresentazione binaria per una macchina virtuale: VM) Controllo correttezza sintattica riferimenti a classi esterne Scrittura del programma in formato bytecode su file con estensione .class Ambienti di sviluppo visuali e interattivi basati sul JDK PowerJ (Sybase), VisualAge for Java (IBM), Visual J++ (Microsoft), JBuilder (Borland), Java Workshop (Sun), Visual Cafe (Symantec) Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Programmi JAVA Interpretazione dei bytecode ed esecuzione Standalone Eseguito direttamente dall’utente sulla piattaforma Java Applet Eseguito da un web browser che contiene la Java VM (interprete dei bytecodes) Il bytecode del programma e’ incluso nelle pagine HTML <APPLET CODE=“HelloWorld.class” WIDTH=150 HEIGHT=25> </APPLET> L’esecuzione della pagina HTML causa il download dell’applet dal server al client e l’esecuzione nel client Servlet Eseguito da un web server che contiene la Java VM Simile a un programma CGI <FORM ACTION=“/servlet/servletname” METHOD=POST> Lezione 14( 03/04) Protocolli Applicativi

Lezione 14( 03/04) Protocolli Applicativi Bibliografia Lezione 14 Lezione 14( 03/04) Protocolli Applicativi