Corso di laurea in INFORMATICA - PowerPoint PPT Presentation

1 / 95
About This Presentation
Title:

Corso di laurea in INFORMATICA

Description:

Title: Protocolli Applicativi Author: alberto Last modified by: alberto Created Date: 3/14/2001 10:48:50 AM Document presentation format: Presentazione su schermo – PowerPoint PPT presentation

Number of Views:207
Avg rating:3.0/5.0
Slides: 96
Provided by: Albe212
Category:

less

Transcript and Presenter's Notes

Title: Corso di laurea in INFORMATICA


1
Corso di laureainINFORMATICA
  • RETI di CALCOLATORI A.A. 2003/2004
  • Protocolli Applicativi
  • Alberto Polzonetti
  • alberto.polzonetti_at_unicam.it

2
Come accedere alle applicazioni
APPLICAZIONE APPLICAZIONI APPLICAZIONI APPLICAZIONI APPLICAZIONI APPLICAZIONI APPLICAZIONI APPLICAZIONI APPLICAZIONI
APPLICAZIONE SMTP SMTP FTP TELNET DNS SNMP SNMP NFS
PRESENTAZIONE SMTP SMTP FTP TELNET DNS SNMP SNMP NFS
SESSIONE SMTP SMTP FTP TELNET DNS SNMP SNMP NFS
TRASPORTO TCP TCP TCP TCP TCP UDP UDP UDP
RETE ICMP IP IP IP IP ARP RARP RARP
RETE IGMP IP IP IP IP ARP RARP RARP
COMUNICAZIONE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE
FISICO PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE
Una applicazione deve prima comunicare al
software di protocollo che sta aspettando
larrivo 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
3
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

4
Modello client - server
Il server attende passivamente di essere
contattato, mentre il client avvia il processo di
comunicazione
  • Applicazione server
  • Programma specializzato
  • Dedicato allerogazione di un servizio
  • Può servire più di un client alla volta
  • Automaticamente invocato allavvio 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 luso della
    rete
  • Esegue anche elaborazioni in locale
  • È invocata direttamente dallutente
  • È eseguita localmente sul computer dellutente
  • Contatta attivamente un solo server alla volta
  • Non richiede dispositivi dedicati

5
Interazione tra client e server
E
A
server
client
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
6
Servizi multipli

TRASPORTO
INTER-RETE
SCHEDA DI RETE

TRASPORTO
INTER-RETE
SCHEDA DI RETE

TRASPORTO
INTER-RETE
SCHEDA DI RETE
Un calcolatore di classe server può offrire
contemporaneamente più servizi, ciascuno dei
quali è erogato da una specifica applicazione
server
7
Creazione dinamica (1)
Erogazione dello stesso servizio a più client
senza che questi debbano mettersi in coda
Porta nota usata solo per lapertura della
connessione
Server parallelo con connessioni
8
Creazione dinamica (2)
Erogazione dello stesso servizio a più client
memorizzati in una coda in attesa di essere
processati
Server sequenziale senza connessioni (specifici
per server che usano UDP)
9
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 allinterno dei protocolli di
    comunicazione, ma parte dei sistemi operativi
    residenti
  • Interfaccia SOCKET standard de facto
  • Nel sistema UNIX BSD linterfaccia 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 leffetto
    desiderato

10
DESCRITTORE SOCKET
  • La comunicazione tramite socket si basa sul
    concetto di descrittore
  • Il descrittore rappresenta un oggetto
  • Le procedure sono metodi applicati alloggetto
  • 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
sdsocket(fam_prot,tipo,protocollo) sdsocket(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)
11
PROCEDURE SOCKET
Procedura close Procedura close Richiede al sistema la chiusura di una socket
Close (sd) Close (sd) Close (sd)
sd Descrittore (numero naturale) che individua il socket Descrittore (numero naturale) che individua il socket
Procedura bind Procedura bind Lega un socket ad un indirizzo socket locale, cioè definisce il valore dellindirizzo socket locale
Bind (sd,ind_locale,lungh_ind) Bind (sd,ind_locale,lungh_ind) Bind (sd,ind_locale,lungh_ind)
sd Descrittore (numero naturale) che individua il socket Descrittore (numero naturale) che individua il socket
ind_locale Indirizzo locale da assegnare alla socket Indirizzo locale da assegnare alla socket
lungh_ind Intero che rappresenta la lunghezza dellindirizzo Intero che rappresenta la lunghezza dellindirizzo
Di solito i client non chiamano la funzione BIND perche dellindirizzo socket locale se ne occupa il sistema operativo Di solito i client non chiamano la funzione BIND perche dellindirizzo socket locale se ne occupa il sistema operativo
Procedura listen Procedura listen Rende la socket passiva sul server per poterla usare per ricevere dati dal client
Listen (sd,lungh_coda) Listen (sd,lungh_coda) Listen (sd,lungh_coda)
lungh_coda Massima lunghezza della coda Massima lunghezza della coda
12
PROCEDURE SOCKET (continua)
Procedura accept Procedura accept Chiamata dal server e rimuove la prima richiesta di connessione dalla coda corrispondente.
Nuova_socketaccept( sd, ind_client,lungh_ind_client) Nuova_socketaccept( sd, ind_client,lungh_ind_client) Nuova_socketaccept( sd, ind_client,lungh_ind_client)
Riempie i campi ind_client con lindirizzo del client che inoltra la richiesta, crea una nuova socket e ne ritorna il descrittore al server Riempie i campi ind_client con lindirizzo 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) Connect(sd,ind_server,lungh_ind_server)
Procedura send Trasferisce i dati in una comunicazione orientata alla connessione
Send(sd,dati..) Send(sd,dati..)
Procedura recv Riceve i dati in una comunicazione orientata alla connessione
Recv(sd, buffer, ..) Recv(sd, buffer, ..)
Procedura sendto Trasferisce i dati in una comunicazione priva di connessione
Send(sd,dati, ind_dest..) Send(sd,dati, ind_dest..)
Procedura recvfrom Riceve i dati in una comunicazione priva di connessione
Recv(sd, buffer, ind_mitt,..) Recv(sd, buffer, ind_mitt,..)
13
Esempio per server parallelo con connessioni
SERVER
CLIENT
CHILD
14
Esempio per server sequenziale senza connessioni
SERVER
CLIENT
15
Inizializzazione
  • Linsieme delle operazioni che hanno luogo
    allavvio 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

16
Configurazione di protocolli
  • Configurazione basata sullaccesso al disco (file
    di configurazione)
  • nome_parametro valore
  • Configurazione automatica
  • RARP
  • ICMP
  • Richiesta maschera degli indirizzi
  • Scoperta del router

17
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
richiesta Porta mittente Porta destinatario IP mitt IP destinat
richiesta 68 67 Tutti 0 Tutti 1
risposta 67 68 Indirizzo unicast del server Indirizzo unicast del client
18
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

19
DHCPfunzionamento
  • 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 lindirizzo 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

20
Nomi di Dominio
  • sistema di registrazione unificato
  • Domain Name System (DNS)
  • un nome è decodificato da destra verso sinistra
  • la parte più a destra è definita zona

21
Segmenti di un nome
  • Il DNS non richiede luso 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

22
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.

23
UNA PORZIONE DEL DNS
24
Gerarchia dei nomi
caffè.barsport.com
panna.gelato.barsport.com
25
Modello client-server DNS gerarchia
26
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
    lintero 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
    laggiornamento 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 questultimo

27
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 lindirizzo
  • Oppure
  • Si rivolge ad un altro server (risoluzione
    ricorsiva)
  • Comunica al resolver lindirizzo di un altro
    server (risoluzione iterativa)
  • Associazione di un indirizzo ad un nome
    (risoluzione inversa)
  • Lindirizzo 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

28
Risoluzione ricorsiva
5
29
Risoluzione Iterativa
30
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

31
Messaggi DNS
Header 12 byte
Record richieste
Record risposte
Risposte autorevoli
Sezione supplementare
Header 12 byte
Record richieste
32
Record richiesta
5 a d m i n 3 a t c 4 f h d a 3 e d u 0
Query name 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
33
Record Risposta
dominio name dominio name
domain type domain class
Tempo residuo Tempo residuo
Lunghezza risposta
RISPOSTA RISPOSTA
34
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_at_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.

35
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.

36
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

37
SMTP (Single Mail Transfer Protocol) utilizzato
per inviare posta elettronica
38
POP (Post Office Protocol ) utilizzato per
ricevere posta elettronica
39
Mail Server store and forward
40
Mail Server Central Mail Spool (Internet Message
Access Protocol)
41
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 nellintestazione una riga
    che indica luso 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

42
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

43
FTP
44
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

45
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

46
Esempio di utilizzo
47
Esempio di utilizzo
48
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

21
20
49
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
    dellavvenuta operazione
  • Linterfaccia NFS è integrata con il file system
    del calcolatore
  • Condivisione di cartella

50
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

51
Web Server
52
CLIENT 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
53
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 lt e gt
i BROWSER leggono ed interpretano questi codici
per formattare il documento sullo schermo
54
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

55
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

56
Come lavora il browser
57
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

58
FUNZIONAMENTO DEL BROWSER
59
MOSAIC
60
NETSCAPE
  • Netscape fondata nel 1994, è al suo terzo anno di
    vita, lazienda a più veloce sviluppo della
    storia americana.
  • lutile netto del 96 è stato di 21 milioni di
    dollari su 346 milioni di fatturato
  • incremento sullanno precedente del 305.
  • dimensioni della azienda si sono quadruplicate e
    si è arrivati a circa 2000 dipendenti
  • Tutto è cominciato nel 1995 con lentrata in
    funzione del Web  la Netscape è stata la più
    veloce a comprendere limportanza di questa
    innovazione nel mondo Internet, lanciando
    Navigotor indispensabile per orientarsi in una
    ragnatela mondiale che diventa ogni giorno più
    intricata.

61
MICROSOFT INTERNET EXPLORER
62
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.
63
Che cosa è una URL
Uniform Resource LocatorURL 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
64
Differenti servizi
  • http//www.unicam.it/university/unitoper/chimica/i
    ndex.html
  • ftp//camcic.unicam.it/pub
  • gopher//camcic.unicam.it/
  • newsnews.announce.conference
  • telnet//camcic.unicam.it
  • mailtoaulac_at_camcic.unicam.it
  • file//esemp01.html

65
Server WEB
Server WEB piattaforma software informazioni
httpd
HTTP
66
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

67
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
68
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

69
Connessioni 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.org8080/pippo.html
  • Server virtuali supportata da un estensione del
    sistema operativo denominata supporto host
    virtuale
  • Connessioni non permanenti e permanenti

70
Formato generale di una richiesta
metodo SP URL SP Versione CR LF Linea di richiesta
campo nome intestazione campo nome intestazione campo nome intestazione valore CR LF Linea di intestazione
. . . . . . . . . . . . . . Linea di intestazione
campo nome intestazione campo nome intestazione campo nome intestazione valore CR LF Linea di intestazione
CR LF
Corpo dellentità
71
Linea di richiesta
  • METODO
  • GET
  • Restituisce loggetto
  • HEAD
  • Restituisce solo le informazioni sulloggetto
  • POST
  • Input dei forms
  • Altri metodi
  • URL
  • url del documento
  • VERSIONE
  • Versione http

72
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 dellhost a cui connettersi
Connection Tipo di connessione
Authorization La password dellutente
If Modified Since Richiede che loggetto venga restituito solo se più recente della data specificata
73
Esempio di una richiesta
GET SP Somedir/page.html SP HTTP/1.1 CR LF Linea di richiesta
HOST HOST HOST www.school.net CR LF Linea di intestazione
Connection Connection Connection close CR LF Linea di intestazione
User-agent User-agent User-agent Mozilla/4.0 CR LF Linea di intestazione
Accept-language Accept-language Accept-language fr CR LF Linea di intestazione
CR LF Linea di intestazione
Quando il metodo è GET non è usato il corpo dellentità Quando il metodo è GET non è usato il corpo dellentità Quando il metodo è GET non è usato il corpo dellentità Quando il metodo è GET non è usato il corpo dellentità Quando il metodo è GET non è usato il corpo dellentità
74
Formato generale di una risposta
Versione SP Codice di stato SP Frase CR LF Linea di stato
campo nome intestazione campo nome intestazione campo nome intestazione valore CR LF Linea di intestazione
. . . . . . . . . . . . . . Linea di intestazione
campo nome intestazione campo nome intestazione campo nome intestazione valore CR LF Linea di intestazione
CR LF
Corpo dellentità
75
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

76
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 delloggetto trasferito
Connection Tipo di connessione
Content-Lenght Numero di byte delloggetto da spedire
Content-Type Tipo MIME delloggetto
Content-Encode Ulteriore codifica
77
Esempio di una risposta
HTTP/1.1 SP 200 SP OK CR LF Linea di stato
Connection Connection Connection Close CR LF Linea di intestazione
Date Date Date Thu, 06 Aug 1998 120015 GMT CR LF Linea di intestazione
Server Server Server Apache/1.3.0 (UNIX) CR LF Linea di intestazione
Last-Modified Last-Modified Last-Modified Mon, 22 jun 1998 092324 GMT CR LF Linea di intestazione
Content-Lenght Content-Lenght Content-Lenght 6821 CR LF Linea di intestazione
Content-Type Content-Type Content-Type Text/html CR LF Linea di intestazione
CR LF Linea di intestazione
OGGETTO OGGETTO OGGETTO OGGETTO OGGETTO OGGETTO OGGETTO
78
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 dellhost associato
    allidentificazione
  • 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

79
ARCHITETTURA dei BROWSER
Richiesta di riferimento hyperlink
Esecuzione di un interprete per visualizzare i
contenuti
Esecuzione di un client per acquisire il documento
80
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 delloggetto per
    determinare quale riferimento eseguire
  • Client facoltativi
  • Client per altri servizi da effettuare in maniera
    trasparente per lutente (ftp, e-mail, ecc..)
  • Cache
  • Migliora la rapidità di accesso ai documenti

81
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 153912
  • Server Apache/1.3.0 (unix)
  • Last-Modified Mon, 22 jun 1998 092324
  • Content Type image/gif
  • Il client memorizza loggetto nella propria cache
  • Richiesta client dopo una settimana
  • GET /fruit/kiwi.gif HTTP/1.0
  • If-modified-since Mon, 22 jun 1998 092324
  • Risposta server
  • HTTP/1.0 304 NOT MODIFIED
  • Date wed, 19 aug 1998 203912
  • Server Apache/1.3.0 (unix)
  • CORPO DELLENTITA VUOTO

82
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 loggetto cercato è nel proxy, questo inoltra
    loggetto nel messaggio di risposta
  • Se loggetto cercato non ce, il proxy apre una
    connessione TCP con il destinatario originale ed
    invia una richiesta HTTP delloggetto specificato
  • Quando il proxy riceve loggetto ne archivia una
    copia nella memoria locale ed invia loggetto
    allinterno di un messaggio di risposta HTTP

83
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

84
Tipi di documenti WEB
  • Documenti statici
  • Documenti Dinamici
  • Il server deve eseguire una applicazione (SCRIPT)
    in presenza di una richiesta
  • Il server riceve loutput dallapplicazione 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 lapplicazione localmente ed il
    risultato rappresenta il documento attivo
  • Hanno la capacità di aggiornarsi continuamente

85
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 dallautore al
    momento della creazione
  • Rimangono invariati fino a che non sono
    modificati dallautore
  • Vantaggi
  • Facili da creare
  • Sono visualizzati velocemente dal browser
  • Svantaggi
  • Interazione limitata
  • Tendono a invecchiare per mancata manutenzione

86
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
    laltra
  • Il server contiene un programma (compilato o
    interpretato) il cui
  • output e restituito al browser
  • il browser mostra loutput come una pagina HTML
  • Vantaggi
  • Generano il contenuto dipendentemente dallinput
    dellutente
  • Svantaggi
  • Necessita di programmare per la creazione
    automatica del contenuto (qualsiasi linguaggio
    interpretato o eseguito dal server)
  • Non esistono standard
  • Linput può essere validato solo dal server

87
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 dellapplicazione
    seguita da una serie di parametri
  • il server Web riconosce che la richiesta deve
    essere indirizzata allapplicazione specificata e
    ne attiva unistanza passandole opportunamente i
    parametri
  • lapplicazione effettua lelaborazione 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
    dallapplicazione CGI e la trasforma in una
    risposta HTTP

88
Applicazioni CGI
  • Lapplicazione 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

89
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)

90
Limiti della programmazione CGI
  • Carico di elaborazione per il server
  • Linterfaccia non supporta un insieme esaustivo
    di tipi di dati
  • Linterfaccia non supporta controllo dei dati
    imessi dalla parte del client
  • Lutente deve premere ltsubmitgt 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

91
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 lutente 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

92
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 lesecuzione di un programma Java
  • Java API librerie di classi riusabili isolano le
    dipendenze dal sistema

93
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)

94
Programmi JAVA
  • Interpretazione dei bytecode ed esecuzione
  • Standalone
  • Eseguito direttamente dallutente 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
  • ltAPPLET CODEHelloWorld.class WIDTH150
    HEIGHT25gt lt/APPLETgt
  • Lesecuzione della pagina HTML causa il download
    dellapplet dal server al client e lesecuzione
    nel client
  • Servlet
  • Eseguito da un web server che contiene la Java VM
  • Simile a un programma CGI
  • ltFORM ACTION/servlet/servletname METHODPOSTgt

95
Bibliografia
Lezione 14
Write a Comment
User Comments (0)
About PowerShow.com