Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli Applicativi Alberto...
-
Upload
patrizio-palmieri -
Category
Documents
-
view
219 -
download
0
Transcript of Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli Applicativi Alberto...
Corso di laureaCorso di laureainin
INFORMATICAINFORMATICA
RETI di CALCOLATORI A.A. 2003/2004Protocolli Applicativi
Alberto [email protected]
Lezione 14( 03/04) Protocolli Applicativi 2Alberto Polzonetti
Reti di calcolatori
Come accedere alle applicazioniCome accedere alle applicazioni
APPLICAZIONEAPPLICAZIONI
SMTP FTPTELNE
TDNS SNMP NFSPRESENTAZIONE
SESSIONE
TRASPORTO TCP UDP
RETEICMP
IP ARP RARPIGM
P
COMUNICAZIONE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTEFISICOUna 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 3Alberto Polzonetti
Reti di calcolatori
ArgomentiArgomenti
Modello client-server
Procedure di inizializzazione
Domain Name System
Protocolli per la posta elettronica
Protocolli per trasferimento files
Protocollo HTTP e web server/client
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 4Alberto Polzonetti
Reti di calcolatori
Modello client - serverModello client - server
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
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
Il server attende passivamente di essere Il server attende passivamente di essere contattato, mentre il client avvia il processo di contattato, mentre il client avvia il processo di comunicazionecomunicazione
Lezione 14( 03/04) Protocolli Applicativi 5Alberto Polzonetti
Reti di calcolatori
Interazione tra client e serverInterazione tra client e serverEA
dati j k Trasporto dati j k Trasport
o
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
client server
Lezione 14( 03/04) Protocolli Applicativi 6Alberto Polzonetti
Reti di calcolatori
Servizi multipliServizi multipli
TRASPORTO
INTER-RETE
SCHEDA DI RETE
Un calcolatore di classe server può offrire Un calcolatore di classe server può offrire contemporaneamente più servizi, ciascuno dei quali è erogato contemporaneamente più servizi, ciascuno dei quali è erogato da una specifica applicazione serverda una specifica applicazione server
TRASPORTO
INTER-RETE
SCHEDA DI RETE
TRASPORTO
INTER-RETE
SCHEDA DI RETE
Client 1 Client 2Server 1 Server 2
Lezione 14( 03/04) Protocolli Applicativi 7Alberto Polzonetti
Reti di calcolatori
Creazione dinamica (1)Creazione dinamica (1)
Erogazione dello stesso servizio a più client senza che questi Erogazione dello stesso servizio a più client senza che questi debbano mettersi in codadebbano mettersi in coda
TCP
client
Porta effimera
TCP
client
Porta effimera
Porte effimere
serverfiglio
serverfiglio
Server padre
TCP
Porta nota usata solo per l’apertura della
connessione
Server parallelo con connessioni
Lezione 14( 03/04) Protocolli Applicativi 8Alberto Polzonetti
Reti di calcolatori
Creazione dinamica (2)Creazione dinamica (2)
Erogazione dello stesso servizio a più client memorizzati in una Erogazione dello stesso servizio a più client memorizzati in una coda in attesa di essere processaticoda in attesa di essere processati
Server sequenziale senza connessioni(specifici per server che usano UDP)
UDP
client
Porta effimera
UDP
client
Porta effimera Porta
nota
Server
UDP
Un client alla volta
Lezione 14( 03/04) Protocolli Applicativi 9Alberto Polzonetti
Reti di calcolatori
Interfaccia socketInterfaccia socket
1. Le applicazioni client e server comunicano tramite i protocolli di trasporto
2. Le applicazioni debbono fornire al protocollo molte informazioni API (Application
Program Interface): insieme di procedure che le applicazioni possono invocare
3. API non è definita all’interno dei protocolli di comunicazione, ma parte dei sistemi operativi residenti
4. Interfaccia SOCKET standard de facto
1. Nel sistema UNIX BSD l’interfaccia socket è parte del sistema operativo
2. Molti produttori aggiungono le socket ai loro sistemi
3. 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 10Alberto Polzonetti
Reti di calcolatori
DESCRITTORE SOCKETDESCRITTORE SOCKET
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_protFamiglia dei protocolli da usare (PF_INET per TCP/IP)(PF_DECnet per DEC)
Tipo
Modalità di comunicazione1. Trasmissione orientata
alla connessione (SOCK_STREAM)
2. Trasmissione priva di connessione (SOCK_DGRAM)
ProtocolloIl particolare protocollo di trasporto0 nel caso TCP/IP
sdDescrittore (numero naturale) che individua il socket (-1 for error)
Lezione 14( 03/04) Protocolli Applicativi 11Alberto Polzonetti
Reti di calcolatori
PROCEDURE SOCKETPROCEDURE SOCKET
Procedura close
Richiede al sistema la chiusura di una socket
Close (sd)
sdDescrittore (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)
sdDescrittore (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 12Alberto Polzonetti
Reti di calcolatori
PROCEDURE SOCKET (continua)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 sendto
Trasferisce i dati in una comunicazione priva di connessione
Send(sd,dati, ind_dest…..)
Procedura recv
Riceve i dati in una comunicazione orientata alla connessione
Recv(sd, buffer, …..)
Procedura recvfrom
Riceve i dati in una comunicazione priva di connessione
Recv(sd, buffer, ind_mitt,…..)
Lezione 14( 03/04) Protocolli Applicativi 13Alberto Polzonetti
Reti di calcolatori
Esempio per server parallelo con Esempio per server parallelo con connessioniconnessioni
socket
bind
listen
socket
connect
ripetizione
accept
Closeaccepting
recv
processo
send
ripetizione
Closeaccepting
ripetizione
send
recv
Close
SERVER
CLIENT
CHILD
Lezione 14( 03/04) Protocolli Applicativi 14Alberto Polzonetti
Reti di calcolatori
Esempio per server sequenziale senza Esempio per server sequenziale senza connessioniconnessioni
socket
bindsocket
ripetizione
recvfrom
processo
sendto
ripetizione
sendto
recvfrom
Close
SERVER
CLIENT
Lezione 14( 03/04) Protocolli Applicativi 15Alberto Polzonetti
Reti di calcolatori
InizializzazioneInizializzazione
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 16Alberto Polzonetti
Reti di calcolatori
Configurazione di protocolliConfigurazione 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 17Alberto Polzonetti
Reti di calcolatori
Protocollo BOOTPProtocollo BOOTP
Il protocollo di bootstrap (BOOTP) è un protocollo progettato per Il protocollo di bootstrap (BOOTP) è un protocollo progettato per ottenere le informazioni di rete (IP, mask, default gateway, ottenere le informazioni di rete (IP, mask, default gateway, name server) quando vengono installate macchine prive di name server) quando vengono installate macchine prive di discodisco
CLIENT SERVER67
UDP
Apertura passiva
CLIENT SERVER67
UDP
Richiesta
68
richiestaPorta mittente
Porta destinatario
IP mitt
IP destinat
richiesta 68 67Tutti 0
Tutti 1
CLIENT SERVER67
UDP
Risposta
68
risposta 67 68
Indirizzo unicast del server
Indirizzo unicast del client
Lezione 14( 03/04) Protocolli Applicativi 18Alberto Polzonetti
Reti di calcolatori
Dynamic Host Configuration Protocol Dynamic Host Configuration Protocol (DHCP)(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 19Alberto Polzonetti
Reti di calcolatori
DHCP:funzionamentoDHCP: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 20Alberto Polzonetti
Reti di calcolatori
Nomi di DominioNomi di Dominio
INDIRIZZI IP 151.100.20.152Registro
Nomi
it
uniroma1
let cri
cri.let.uniroma1.it
sistema di registrazione unificato
Domain Name System (DNS)
un nome è decodificato da destra verso sinistra
la parte più a destra è definita zona
Lezione 14( 03/04) Protocolli Applicativi 21Alberto Polzonetti
Reti di calcolatori
Segmenti di un nomeSegmenti 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
com Società commerciali
edu Scuole università
gov Dipartimenti governativi
int Organizzazioni internazionali
mil Posizioni militari
net Organizzazioni di gestione di rete
org Tutto il resto
Sigla Una nazione
Lezione 14( 03/04) Protocolli Applicativi 22Alberto Polzonetti
Reti di calcolatori
I magnifici sette TLDI 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 23Alberto Polzonetti
Reti di calcolatori
UNA PORZIONE DEL DNSUNA PORZIONE DEL DNS
Lezione 14( 03/04) Protocolli Applicativi 24Alberto Polzonetti
Reti di calcolatori
Gerarchia dei nomiGerarchia dei nomi
com
bar sport
caffè
gelato
pannanocciolacioccolato
caffè.barsport.com
panna.gelato.barsport.com
Lezione 14( 03/04) Protocolli Applicativi 25Alberto Polzonetti
Reti di calcolatori
Modello client-server DNS: gerarchiaModello client-server DNS: gerarchia
com
bar sport
caffè
gelato
pannanocciolacioccolato
com
bar sport
caffè
gelato
pannanocciolacioccolato
Root server
Server di barsport.com
Server di gelato.
barsport.com
Root server
Server di barsport.com
Server di panna.gelato
. barsport.com
Lezione 14( 03/04) Protocolli Applicativi 26Alberto Polzonetti
Reti di calcolatori
Collegamento tra i server (regole)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 27Alberto Polzonetti
Reti di calcolatori
Risoluzione di indirizziRisoluzione 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 28Alberto Polzonetti
Reti di calcolatori
Risoluzione ricorsivaRisoluzione ricorsiva
client
Mcgraw.com
Fhda.edu1
edu
2
Root server
3
com
4
5
67
8
9
10
Lezione 14( 03/04) Protocolli Applicativi 29Alberto Polzonetti
Reti di calcolatori
Risoluzione IterativaRisoluzione Iterativa
client
Mcgraw.com
Fhda.edu1
2
edu
3
4
Root server
6
5
com7
8
9
10
Lezione 14( 03/04) Protocolli Applicativi 30Alberto Polzonetti
Reti di calcolatori
Ottimizzazioni delle prestazioniOttimizzazioni 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 31Alberto Polzonetti
Reti di calcolatori
Messaggi DNSMessaggi DNS
Header 12 byte
Record richieste
Header 12 byte
Record richieste
Record risposte
Risposte autorevoli
Sezione supplementare
messaggi
richiesta risposta
Lezione 14( 03/04) Protocolli Applicativi 32Alberto Polzonetti
Reti di calcolatori
Record richiestaRecord richiesta
Query nameQuery type Query
class
5 a d m i n 3 a t c 4 f h d a 3 e d u 0
1 ARichiesta di indirizzo IPv4
2 NSRichiesta name server
5CNAM
EAlias
15 MX Indirizzo e-mail
28 AAAARichiesta indirizzo IPv6
…. …… …………
1 INinterne
t
Lezione 14( 03/04) Protocolli Applicativi 33Alberto Polzonetti
Reti di calcolatori
Record RispostaRecord Risposta
dominio namedomain type domain class
Tempo residuo
Lunghezza risposta
RISPOSTA
Lezione 14( 03/04) Protocolli Applicativi 34Alberto Polzonetti
Reti di calcolatori
Servizi di un programma di posta (1)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 [email protected].
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.
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 [email protected].
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 35Alberto Polzonetti
Reti di calcolatori
Servizi di un programma di posta (2)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.
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 36Alberto Polzonetti
Reti di calcolatori
FunzionamentoFunzionamento
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 37Alberto Polzonetti
Reti di calcolatori
SMTP (Single Mail Transfer Protocol): SMTP (Single Mail Transfer Protocol): utilizzato per inviare posta elettronica utilizzato per inviare posta elettronica
Lezione 14( 03/04) Protocolli Applicativi 38Alberto Polzonetti
Reti di calcolatori
POP (Post Office Protocol ): utilizzato per POP (Post Office Protocol ): utilizzato per ricevere posta elettronica ricevere posta elettronica
Lezione 14( 03/04) Protocolli Applicativi 39Alberto Polzonetti
Reti di calcolatori
Mail Server store and forwardMail Server store and forward
Lezione 14( 03/04) Protocolli Applicativi 40Alberto Polzonetti
Reti di calcolatori
Mail Server Central Mail Spool (Internet Mail Server Central Mail Spool (Internet Message Access Protocol)Message Access Protocol)
Lezione 14( 03/04) Protocolli Applicativi 41Alberto Polzonetti
Reti di calcolatori
Uso della posta elettronica per trasmettere Uso della posta elettronica per trasmettere filesfiles
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.0Content-type: text/plain
Lezione 14( 03/04) Protocolli Applicativi 42Alberto Polzonetti
Reti di calcolatori
Trasferimento dei fileTrasferimento 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 43Alberto Polzonetti
Reti di calcolatori
FTPFTP
Lezione 14( 03/04) Protocolli Applicativi 44Alberto Polzonetti
Reti di calcolatori
Comandi e sessione FTPComandi 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 45Alberto Polzonetti
Reti di calcolatori
Comandi e sessione FTPComandi 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 46Alberto Polzonetti
Reti di calcolatori
Esempio di utilizzoEsempio di utilizzo
Lezione 14( 03/04) Protocolli Applicativi 47Alberto Polzonetti
Reti di calcolatori
Esempio di utilizzoEsempio di utilizzo
Lezione 14( 03/04) Protocolli Applicativi 48Alberto Polzonetti
Reti di calcolatori
Connessione dati
Connessione di controllo
Connessione dati e di controlloConnessione 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 FTP21 20
Lezione 14( 03/04) Protocolli Applicativi 49Alberto Polzonetti
Reti di calcolatori
Altri protocolli relativi ai fileAltri 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 50Alberto Polzonetti
Reti di calcolatori
Web ServerWeb 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]http [Hypertext Transfer Protocol]
Lezione 14( 03/04) Protocolli Applicativi 51Alberto Polzonetti
Reti di calcolatori
Web ServerWeb Server
Web client
Web Server
Richiesta http del client
Web client
Replica http del se
rver
Lezione 14( 03/04) Protocolli Applicativi 52Alberto Polzonetti
Reti di calcolatori
CLIENT WEBCLIENT WEB
VISUALIZZATORI DELLE INFORMAZIONI REPERIBILI IN LINEA SU QUESTO O QUEL SERVER (interfaccia utente – internet)
INTERPRETA IL CODICE HTML
SINGOLARI PER CAPACITA’ E STRUTTURAZIONE PROPRIA
VISUALIZZATORI DELLE INFORMAZIONI REPERIBILI IN LINEA SU QUESTO O QUEL SERVER (interfaccia utente – internet)
INTERPRETA IL CODICE HTML
SINGOLARI PER CAPACITA’ E STRUTTURAZIONE PROPRIA
BROWSERBROWSER
Lezione 14( 03/04) Protocolli Applicativi 53Alberto Polzonetti
Reti di calcolatori
Che cosa è HTMLChe cosa è HTML
HyperText Markup Language HyperText Markup Language [HTML] (linguaggio di etichettatura per gli ipertesti) è il linguaggio del World Wide Web.
Si marcano i files testo con puntine HTML (TAGTAG) in modo tale che essi possano essere letti localmente o in rete da i BROWSERBROWSER.
I TAG sono codici evidenziati dai simboli < e >< e > ; i BROWSER leggono ed interpretano questi codici per formattare il documento sullo schermo
Lezione 14( 03/04) Protocolli Applicativi 54Alberto Polzonetti
Reti di calcolatori
Capacità di HTMLCapacità 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 55Alberto Polzonetti
Reti di calcolatori
StandardStandard
HTML non descrive un testo come un HTML non descrive un testo come un linguaggio di programmazionelinguaggio di programmazione
Si limita ad evidenziare il contenuto Si limita ad evidenziare il contenuto del file con una serie di attributi che del file con una serie di attributi che sono stati precedentemente definiti sono stati precedentemente definiti
il linguaggio ufficiale HTML è dunque il linguaggio ufficiale HTML è dunque uno specifico insieme di TAG che tutti i uno specifico insieme di TAG che tutti i browser dovrebbero interpretarebrowser dovrebbero interpretare
alcuni browser sono capaci di alcuni browser sono capaci di
interpretare TAG addizionali al di fuori interpretare TAG addizionali al di fuori
degli standarddegli standard
Lezione 14( 03/04) Protocolli Applicativi 56Alberto Polzonetti
Reti di calcolatori
Come lavora il browserCome lavora il browser
FUNZIONI BASE
trasmissione trasmissione richiestarichiesta
ricevimento ricevimento datidati
visualizzazione visualizzazione informazioniinformazioni
MODO:MODO:
GRAFICOGRAFICO
NON GRAFICONON GRAFICO
Lezione 14( 03/04) Protocolli Applicativi 57Alberto Polzonetti
Reti di calcolatori
Come lavora il browserCome 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 58Alberto Polzonetti
Reti di calcolatori
FUNZIONAMENTO DEL BROWSERFUNZIONAMENTO DEL BROWSER
Lezione 14( 03/04) Protocolli Applicativi 59Alberto Polzonetti
Reti di calcolatori
MOSAICMOSAIC
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 60Alberto Polzonetti
Reti di calcolatori
NETSCAPENETSCAPE
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.
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 James H. Clark
Lezione 14( 03/04) Protocolli Applicativi 61Alberto Polzonetti
Reti di calcolatori
MICROSOFT INTERNET EXPLORERMICROSOFT INTERNET EXPLORER
Lezione 14( 03/04) Protocolli Applicativi 62Alberto Polzonetti
Reti di calcolatori
INDIRIZZO (URL)INDIRIZZO (URL)
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.
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.
http://www.geocities.com/SiliconValley/Park/index.htm
Lezione 14( 03/04) Protocolli Applicativi 63Alberto Polzonetti
Reti di calcolatori
Che cosa è una URLChe cosa è una URL
Uniform Resource LocatorUniform 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 :SINTASSI STANDARD :
nomeservizio://indirizzohost/risorsa
Lezione 14( 03/04) Protocolli Applicativi 64Alberto Polzonetti
Reti di calcolatori
Differenti serviziDifferenti 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:[email protected] file://esemp01.html
Lezione 14( 03/04) Protocolli Applicativi 65Alberto Polzonetti
Reti di calcolatori
Server WEBServer WEB
Server WEB = piattaforma + software + informazioni
computerHard disk
documenti
RETE
httpd
HTTP
Lezione 14( 03/04) Protocolli Applicativi 66Alberto Polzonetti
Reti di calcolatori
HTTPHTTP
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 67Alberto Polzonetti
Reti di calcolatori
Penetrazione dei server webPenetrazione 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 68Alberto Polzonetti
Reti di calcolatori
Architettura dei server WEBArchitettura 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 69Alberto Polzonetti
Reti di calcolatori
Connessioni e servizi webConnessioni e servizi web
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
Richiesta HTTP
Risposta HTTP
Richiesta HTTP
Risposta HTTP
Lezione 14( 03/04) Protocolli Applicativi 70Alberto Polzonetti
Reti di calcolatori
Formato generale di una richiesta Formato generale di una richiesta
metodo SP URL SPVersion
eCR LF
Linea di richiesta
campo nome intestazione : valore CR LF
Linea di intestazion
e
.
.campo nome intestazione : valore CR LF
CR LF
Corpo dell’entità
Lezione 14( 03/04) Protocolli Applicativi 71Alberto Polzonetti
Reti di calcolatori
Linea di richiestaLinea 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 72Alberto Polzonetti
Reti di calcolatori
Linea di intestazioneLinea di intestazione
CAMPO VALORE
User agent Tipo di browser che effettua la richiesta
AcceptI 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 73Alberto Polzonetti
Reti di calcolatori
Esempio di una richiesta Esempio di una richiesta
GET SPSomedir/
page.htmlSP
HTTP/1.1
CR LFLinea di richiesta
HOST :www.school.ne
tCR LF
Linea di intestazion
e
Connection : close CR LF
User-agent :Mozilla/
4.0CR LF
Accept-language : fr CR LF
CR LF
Quando il metodo è GET non è usato il corpo dell’entità
Lezione 14( 03/04) Protocolli Applicativi 74Alberto Polzonetti
Reti di calcolatori
Formato generale di una rispostaFormato generale di una risposta
Versione SPCodice di
statoSP Frase CR LF
Linea di stato
campo nome intestazione : valore CR LF
Linea di intestazion
e
.
.campo nome intestazione : valore CR LF
CR LF
Corpo dell’entità
Lezione 14( 03/04) Protocolli Applicativi 75Alberto Polzonetti
Reti di calcolatori
Linea di statoLinea 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 76Alberto Polzonetti
Reti di calcolatori
Linea di intestazioneLinea di intestazione
CAMPO VALORE
Date Data in cui la risposta è stata creata
ServerTipo 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 77Alberto Polzonetti
Reti di calcolatori
Esempio di una risposta Esempio di una risposta
HTTP/1.1
SP 200 SP OK CR LFLinea di
stato
Connection : Close CR LF
Linea di intestazi
one
Date :
Thu, 06 Aug 1998
12:00:15 GMT
CR LF
Server :Apache/1.3.0
(UNIX)CR LF
Last-Modified :
Mon, 22 jun 1998
09:23:24 GMT
CR LF
Content-Lenght : 6821 CR LF
Content-Type : Text/html CR LF
CR LF
OGGETTO
Lezione 14( 03/04) Protocolli Applicativi 78Alberto Polzonetti
Reti di calcolatori
Autenticazione e cookieAutenticazione 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 79Alberto Polzonetti
Reti di calcolatori
ARCHITETTURA dei BROWSERARCHITETTURA dei BROWSER
Unità di controllo
Input dal mouse o dalla tasiera
driver
Interprete facoltativo
Interprete HTML Output
inviato allo schermo
Client facoltativo
Client HTTP
Scheda di rete
Comunicazione con il server WEB
Richiesta di riferimento hyperlink
Esecuzione di un client per acquisire il documento
Esecuzione di un interprete per visualizzare i contenuti
Lezione 14( 03/04) Protocolli Applicativi 80Alberto Polzonetti
Reti di calcolatori
Architettura del browserArchitettura 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 81Alberto Polzonetti
Reti di calcolatori
Cache del client : GET condizionatoCache 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 82Alberto Polzonetti
Reti di calcolatori
Cache del web server: proxy serverCache 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 83Alberto Polzonetti
Reti di calcolatori
Vantaggi di un server proxyVantaggi 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 84Alberto Polzonetti
Reti di calcolatori
Tipi di documenti WEBTipi 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 85Alberto Polzonetti
Reti di calcolatori
DOCUMENTI STATICIDOCUMENTI 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 86Alberto Polzonetti
Reti di calcolatori
Documenti dinamiciDocumenti 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 87Alberto Polzonetti
Reti di calcolatori
Documenti DinamiciDocumenti 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 88Alberto Polzonetti
Reti di calcolatori
Applicazioni CGIApplicazioni 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 89Alberto Polzonetti
Reti di calcolatori
Standard OutputStandard 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 90Alberto Polzonetti
Reti di calcolatori
Limiti della programmazione CGILimiti 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 91Alberto Polzonetti
Reti di calcolatori
Documenti attiviDocumenti 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 92Alberto Polzonetti
Reti di calcolatori
JAVAJAVA
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 93Alberto Polzonetti
Reti di calcolatori
Programmi JAVAProgrammi 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 94Alberto Polzonetti
Reti di calcolatori
Programmi JAVAProgrammi 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 95Alberto Polzonetti
Reti di calcolatori
Lezione 14Lezione 14
BibliografiaBibliografia