Title: Corso di laurea in INFORMATICA
1Corso di laureainINFORMATICA
- RETI di CALCOLATORI A.A. 2003/2004
- Protocolli Applicativi
- Alberto Polzonetti
- alberto.polzonetti_at_unicam.it
2Come 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
3Argomenti
- Modello client-server
- Procedure di inizializzazione
- Domain Name System
- Protocolli per la posta elettronica
- Protocolli per trasferimento files
- Protocollo HTTP e web server/client
4Modello 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
5Interazione 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
6Servizi 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
7Creazione 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
8Creazione 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)
9Interfaccia 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
10DESCRITTORE 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)
11PROCEDURE 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
12PROCEDURE 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,..)
13Esempio per server parallelo con connessioni
SERVER
CLIENT
CHILD
14Esempio per server sequenziale senza connessioni
SERVER
CLIENT
15Inizializzazione
- 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
16Configurazione di protocolli
- Configurazione basata sullaccesso al disco (file
di configurazione) - nome_parametro valore
- Configurazione automatica
- RARP
- ICMP
- Richiesta maschera degli indirizzi
- Scoperta del router
17Protocollo 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
18Dynamic 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
19DHCPfunzionamento
- 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
20Nomi di Dominio
- sistema di registrazione unificato
- Domain Name System (DNS)
- un nome è decodificato da destra verso sinistra
- la parte più a destra è definita zona
21Segmenti 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
22I 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.
23UNA PORZIONE DEL DNS
24Gerarchia dei nomi
caffè.barsport.com
panna.gelato.barsport.com
25Modello client-server DNS gerarchia
26Collegamento 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
27Risoluzione 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
28Risoluzione ricorsiva
5
29Risoluzione Iterativa
30Ottimizzazioni 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
31Messaggi DNS
Header 12 byte
Record richieste
Record risposte
Risposte autorevoli
Sezione supplementare
Header 12 byte
Record richieste
32Record 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
33Record Risposta
dominio name dominio name
domain type domain class
Tempo residuo Tempo residuo
Lunghezza risposta
RISPOSTA RISPOSTA
34Servizi 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.
35Servizi 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.
36Funzionamento
- 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
37SMTP (Single Mail Transfer Protocol) utilizzato
per inviare posta elettronica
38POP (Post Office Protocol ) utilizzato per
ricevere posta elettronica
39Mail Server store and forward
40Mail Server Central Mail Spool (Internet Message
Access Protocol)
41Uso 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
42Trasferimento 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
43FTP
44Comandi 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
45Comandi 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
46Esempio di utilizzo
47Esempio di utilizzo
48Connessione 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
49Altri 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
50Web 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
51Web Server
52CLIENT 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
53Che 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
54Capacità 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
55Standard
- 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
56Come lavora il browser
57Come 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
58FUNZIONAMENTO DEL BROWSER
59MOSAIC
60NETSCAPE
- 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.
61MICROSOFT INTERNET EXPLORER
62INDIRIZZO (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.
63Che 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
64Differenti 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
65Server WEB
Server WEB piattaforma software informazioni
httpd
HTTP
66HTTP
- 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
67Penetrazione 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
68Architettura 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
69Connessioni 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
70Formato 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à
71Linea 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
72Linea 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
73Esempio 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à
74Formato 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à
75Linea 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
76Linea 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
77Esempio 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
78Autenticazione 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
79ARCHITETTURA dei BROWSER
Richiesta di riferimento hyperlink
Esecuzione di un interprete per visualizzare i
contenuti
Esecuzione di un client per acquisire il documento
80Architettura 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
81Cache 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
82Cache 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
83Vantaggi 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
84Tipi 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
85DOCUMENTI 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
86Documenti 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
87Documenti 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
88Applicazioni 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
89Standard 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)
90Limiti 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
91Documenti 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
92JAVA
- 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
93Programmi 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)
94Programmi 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
95Bibliografia
Lezione 14