Upload
vutuyen
View
215
Download
0
Embed Size (px)
Citation preview
1
Sistemi Informativi in ReteLe reti di calcolatori e Internet
III Facoltà di ArchitetturaPolitecnico di Milano - sede di MilanoBovisa
Gianpaolo CugolaDipartimento di Elettronica e Informazione
cugol a@el et . poli mi . itht t p: / /w ww. el et . pol im i . i t / ˜ cugola
2
Sommario
� Le reti di calcolatori, una vista d’ insieme
� Breve storia di Internet
� L’I nternet Protocol Suite
� I protocolli applicativi
� Il WWW– Schema di funzionamento– URL– Il li nguaggio HTML
� La ricerca di informazioni su Internet
3
Il concetto di rete di calcolatori
� Con il termine “ rete di calcolatori” intendiamo riferirci a un sistema informativo costituito da due o più calcolatori collegati attraverso un sistema di comunicazione
� Una “applicazione distribuita” è una applicazione composta da più elementi cooperanti posti in esecuzione su macchine diverse all’ interno di una rete di calcolatori
4
Topologia di rete�
Con il termine “topologia di rete” si indica la disposizione fisica dei componenti che realizzano la rete...
�
... la loro tipologia...
�
... e la modalità con la quale sono connessi
5
Topologie standard
Rete ad anello Rete a stella
Rete a bus
Topologia irregolare
6
Supporti fisici - 1
� Diversi mezzi trasmissivi possono essere adottati per costituire il supporto fisico sul quale viaggia la comunicazione in una rete di calcolatori
� I principali mezzi trasmissivi adottati sono:– Doppino ritorto (twisted pair):
• Costituito da due fini di rame ricoperti da una guaina e ritorti
• Tipicamente utili zzato per trasmissione telefonica
• Consente velocità di trasmissione medio alte (100 Mbssu rete locale)
• Su rete telefonica le velocità è più bassa (2 Mbpscon ADSL)
7
Supporti fisici - 2
– Cavo coassiale:• Costituito da un filo centrale in rame rivestito da una guaina in
plastica a sua volta rivestita da una maglia in rame. Il tutto ricoperto da una guaina in plastica
• Per mette velocità di trasmissione medio alte (100Mbps)
– Fibra ottica:• Costituito da una fibra di vetro ricoperta, capace di trasportare
segnali l uminosi• La trasmissione avviene nel campo ottico sfruttando diodi
fotoelettrici alle estremità del cavo• Permette velocità di trasmissione molto elevate, dell ’ordine
delle decine di Gbps)
8
Supporti fisici - 3
– Onde elettromagnetiche:• Usate per trasmissioni radio e via satellit e
• Consentono trasmissioni su lunghissime distanze con degrado minimo del segnale
• Permettono velocità di trasmissione medio alte e variabili a seconda della banda di frequenza utili zzata
9
Segnalazione
� I dati binari scambiati da due calcolatori possono essere trasmessi direttamente sul canale o sfruttando la modulazione di un segnale portante
� Nel primo caso si parla di segnalazione in banda base– Esempio: il bit 1 viene trasmesso su un cavo come
presenza di tensione, il bit 0 come assenza
� Nel secondo si parla di segnalazione in modulazione
10
Modulazione e demodulazione - 1
�
Il principio della modulazione si basa sull ’esistenza di un segnale portante che viene modulato per codificare i bit 1 e 0
�
Modulazione in frequenza
Portante Segnale 1 Segnale 0
11
Modulazione e demodulazione 2
�
Modulazione di ampiezza
�
Modulazione di fase
Portante Segnale 1 Segnale 0
Portante Passaggio di fase
12
Trasmissione�
La trasmissione può essere– Simplex
• Il senso di trasmissione è fisso (poco usata)
– Half-duplex• La trasmissione è possibile, alternativamente, nei
due sensi
– Full -duplex• La trasmissione è possibile, contemporaneamente,
nei due sensi
13
Indirizzamento e commutazione
� Indirizzamento è un servizio fornito da una rete di comunicazione che consente di indirizza re un messaggio ad un singolo destinatario
� Commutazione indica la modalità con la quale la rete opera per fornire il servizio di indirizzamento– Commutazione di circuito
– Commutazione di pacchetto
14
Commutazione
�
In generale una rete non è completa
�
Per collegare due nodi occorre stabili re un collegamento tra questi
�
Nel caso di reti a commutazione di circuito il collegamento è realizzato in maniera fisica
�
Nel caso di reti a commutazione di pacchetto il collegamento e “virtuale”
15
Commutazione di circuito
� Quando un nodo A chiede un collegamento con un nodo B viene creato un circuito fisico che collega A a B
A
B
A
B
Commutazione
16
Commutazione di pacchetto� In fase di trasmissione la rete non forma alcun
collegamento diretto tra due nodi...
� ... ma si limita a inviare i messaggi scambiati lungo i collegamenti della rete dal mittente al destinatario– Messaggi diversi possono prendere strade diverse
A
B
17
Reti a commutazione di pacchetto: servizi forniti
� Le reti a commutazione di pacchetto forniscono due tipi di servizi– Servizi a datagramma
• Non viene creato alcun circuito tra mittente e destinatario• Il singolo messaggio viene gestito indipendentemente dai
precedenti e dai successivi
– Servizi a circuito virtuale• Viene stabilit o un circuito virtuale tra mittente e destinatario• Viene mantenuto l’ordinamento tra messaggi diversi inviati
lungo tale circuito virtuale• messaggi diversi inviati lungo lo stesso circuito virtuale possono
comunque compiere strade diverse lungo la rete per raggiungere il destinatario
18
Protocollo di comunicazione
�
Con il termine “protocollo di comunicazione” si indica l’ insieme di regole di comunicazione che debbono essere seguite da due interlocutori affinché essi possano comprendersi
�
Esempio: il protocollo alla base della comunicazione tra docente e alli evi durante una lezione– il docente parla in una lingua comprensibile agli alli evi– gli alli evi ascoltano (si spera)– quando vogliono intervenire gli alli evi alzano la mano ed
attendono il permesso del docente per iniziare a parlare– durante l’ intervento degli alli evi il docente ascolta– al termine dell ’ intervento il docente risponde
19
Organizzazione a pila dei protocolli
�
I protocolli utili zzati dai calcolatori sono organizzati secondo una gerarchia
�
Ogni protocollo si appoggia ai protocolli di più basso livello per fornire un servizio di qualità superiore– Esempio: protocollo con correzione d’errore
costruito sulla base di un protocollo di puro trasporto
20
Un esempio di rete di calcolatori: Internet e intranet
� Internet: una breve analisi storica
� Internet vs. intranet
� I protocolli di Internet– Protocolli fisici e di collegamento
• Ethernet, PPP
– Il protocollo TCP/IP• Descrizione del protocollo• Le primitive C per la programmazione di rete basata su TCP/IP
– Esempi di protocolli appli cativi:• Telnet, SMTP, POP3, IMAP, NNTP, FTP, HTTP
21
Internet: “ la rete delle reti”
� Internet: una rete aperta...
� ... logicamente formata da decine di milioni di calcolatori direttamente collegati tra loro...
� ... attraverso l’adozione di un unico insieme di protocolli per i l ivelli intermedi: il protocollo TCP/IP...
� I protocolli dei livelli più bassi possono essere diversi...
� ... e lo stesso vale per i protocoll i dei li velli superiori, anche se si sono venuti a formare degli standard di fatto
22
Storia di Internet
�
Fine anni ’60:– laDefence Advanced Research Project Agency (DARPA) sviluppa
ARPANET che connette laboratori di ricerca, università e reti governative
�
Fine anni ’70: – DARPA finanzia lo sviluppo di protocolli a commutazione di
pacchetto
– Nasce TCP/IP
– Nel 1980 ARPANET si “ converte” a TCP/IP
23
Storia di Internet
�
Anni ’80– Nel 1983 la conversione a TCP/IP è completa, l’ ufficio del Segretario
della Difesa US ordina che tutti i computer connessi a reti a lunga distanza usino TCP/IP
– MILNET (rete governativa e mili tare) si separa da ARPANET (1983)– DARPA finanzia lo sviluppo di Berkeley UNIX (implementazione di
TCP/IP che introduce l ’astrazione dei socket)– ARPANET diventa un sottoinsieme di Internet– La National Science Foundation (NSF) realizza una rete di supercomputer
(NSFNET) che agisce comebackbonedi Internet (1985)– Nel 1986 si stima che Internet connettesse circa 20.000 computer
�
Anni ’90:– Internet esplode e cresce con ritmi velocissimi (dimensioni e traffico)
24
Internet: architettura logica
Rete
Serverftp
Clientweb
Clientftp
Serverweb
Clientweb
Clientweb
Serverftp
Serverweb
25
Internet: architettura fisica
Host
router
Internetprovider
26
Internet vs. Intranet
�
Internet: rete globale caratterizzata dall ’uso dei protocolli TCP/IP
�
Intranet: rete locale caratterizzata dall ’uso dei medesimi protocolli di Internet
�
Il boom di Internet ha favorito lo sviluppo di centinaia di appli cazioni distribuite basate su TCP/IP
�
Ciò ha reso conveniente l’uso dei protocolli TCP/IP anche in ambito locale
�
Attualmente la maggior parte delle reti locali sfrutta TCP/IP come protocollo base
27
Internet Protocol Suite
Application
Session
Presentation
Network
Transport
DataLink
ISO/OSI
PhysicalNon specificati
IP e Protocolli di routing
TCP e UDP
Telnet
FTP
SMTP
HTTP RPC
Web-NFS
NFS
Internet Protocol Suite
28
Il protocollo Ethernet� Ethernet è il protocollo più diffuso per la
creazione di reti locali
� Copre i livelli 1 e 2 della pila OSI
� Sviluppato a metà degli anni ’70 nei laboratori dellaXerox ottiene la prima standardizzazione ad opera della IEEE nel 1980
� Nella forma attuale viene standardizzato nel 1983 (standard IEEE802.3)
29
Ethernet: caratteristiche - 1
�
Il protocollo ethernet consente trasmissioni su rete locale alla velocità di 10Mbit/s
�
La connessione avviene secondo lo schema a bus– Ogni macchina è logicamente collegata ad un unico canale sul
quale trasmette le informazioni e dal quale riceve le informazioni immesse da tutte le altre macchine
�
I supporti adottati possono essere diversi :– Coassiale spesso (1 cm di diametro c.a.)– Coassiale sottile (5 mm di diametro c.a.)– Doppino ritorto
�
A seconda del supporto adottato varia la lunghezza massima del cavo e la distanza minima tra le macchine
30
Ethernet: caratteristiche - 2
�
La trasmissione avviene adottando una codifica in banda base
�
L’accesso alla rete avviene secondo la politi ca CSMA/CD (Carrier Sense Multiple Access/Colli sion Detection)– Prima di iniziare a trasmettere si ascolta il canale per accertarsi che
non sia già in uso– Appena il canale e libero si inizia a trasmettere– Durante la trasmissione si ascolta il canale per sincerarsi che non
stiano avvenendo colli sioni– In caso di coll isioni:
• si continua a trasmettere fino al raggiungimento della dimensione minima del pacchetto (64 byte)
• si attende un tempo arbitrario e si ricomincia a trasmettere
31
Ethernet: conseguenze dell ’uso della politi ca CSMA/CD
� La velocità di trasmissione effettiva dipende dal numero di collisioni...
� ... che a sua volta dipende dal numero di macchine in rete– In una situazione reale non si va oltre il 40%÷60% della
banda disponibile
� La rete non è adatta alla trasmissione di traff ico multimediale – Non è possibile assicurare una ben precisa quali tà del
servizio
32
Ethernet: topologia logica e fisica
Topologia logica ≡�
topologia fisica usando coax
Topologia fisica(usando doppino)
HUB
33
Ethernet: caratteristiche del protocollo
� Connectionless– Non viene instaurato alcun tipo di connessione tra
mittente e destinatario
� Assenza di supporto alla correzione d’errore– Il campo FCS permette solo di riconoscere eventuali
errori ma non esiste supporto alla loro correzione
� Best-effort– Il sottosistema di rete non assicura la consegna ma fa
solo “del proprio meglio” per consegnare il messaggio
34
Il protocollo PPP
� Usato per il collegamento diretto (punto a punto) tra due macchine– Tipicamente attraverso l’uso di un modem
� Protocollo di li vello 2– Si appoggia ad un protocollo di più basso li vello quale
V.90
� Può essere utilizzato per convogliare protocolli di livello 3 diversi quali IP, IPX/SPX, ecc.
� Protocollo con connessione
35
Switch e router
� Le sottoreti che formano Internet sono collegate da appositi nodi genericamente chiamati gateway– Si occupano di instradare i messaggi dalla macchina
sorgente alla macchina destinazione
� Distinguiamo tra due tipologie di gateway:– switch : operano a li vello 2 della pila OSI. Sono molto
veloci ed adatti a collegare segmenti ethernet diversi per ripartire il traff ico
– router : operano a li vello 3 e 4. Possono effettuare conversioni di protocollo
36
Il protocollo IP�
Caratteristiche:– protocollo connectionless– si occupadell ’ instradamento e della rilevazione d’errore (nessuna
correzione)
�
Non si assicura:– la consegna, – l’ integrità, – la non-duplicazione– l’ordine di consegna
�
IP si può appoggiare ad una varietà di protocolli di più basso li vello, quali Ethernet, PPP, X.25, Frame Relay, ATM, ...
37
Gli i ndirizzi IP
�
Ogni host possiede un indirizzo IP unico per ogni interfaccia di rete
�
Gli i ndirizzi IP sono formati da 32 bit, suddivisi in una parte che individua una sottorete ed in una porzione che identifica un nodo particolare della sottorete
�
La divisione dipende dalla classe della sottorete, definita nei primi bit dell ’ indirizzo– Classe A (0): NetId = 7 bit (128 reti), HostId = 24 bit (16777216 host)– Classe B (10): NetId = 14 bit (16384 reti), HostId = 16 bit (65536host)– Classe C (110): NetId = 21 bit (2097152 reti), HostId = 8 bit (256 host)– Multicast (1110): indirizzo multicast
� I router hanno due o piu’ indirizzi IP diversi ed una tabella di instradamento
38
Gestione degli i ndirizzi
�
L’uso di assegnare reti di classe A o B a compagnie che usano un ridotto sottoinsieme degli i ndirizzi rischia, oggi, di portare all’esaurimento degli i ndirizzi disponibili
�
Sono state proposte diverse soluzioni ad hoc che consentono di “ recuperare” parte degli i ndirizzi perduti...
�
... ma l’unica vera soluzione si avrà con il passaggio a IPv6 che userà 128 bit per gli i ndirizzi– 340282366920938463463374607431768211456 indirizzi distinti– Contando anche l’assegnazione di sottospazi di indirizzi si calcola
che saranno disponibili 1564 indirizzi IP per ogni metro quadrato di superficie terrestre
39
Ancora sugli i ndirizzi IP
�
Gli i ndirizzi IP si scrivono come quattro interi separati da punti– Esempio: 131.175.5.25
�
L’ indirizzo 127.0.0.1 rappresenta l’ interfaccia di loopback– Indirizzo “ fittizio” associato alla macchina
corrente
40
Indirizzi privati�
Gli i ndirizzi IP vengono assegnati da un’autorità nazionale, chiamato Network Information Center (GARR in Italia) che coopera con altre autorità simili
�
Alcune aziende non potendo/volendo chiedere un set di indirizzi IP scelgono indirizzi a caso– In questo caso tali indirizzi non dovranno essere visibili da reti
esterne (si usa il meccanismo dell ’I P masquerading)
�
L’ RFC 1597 definisce quali siano i set di indirizzi da usare in questo caso. Questi indirizzi non verranno mai assegnati a nessuna azienda o organizzazione
41
Instradamento - 1
�
I datagrammi IP vengono trasportati dal nodo mittente al nodo destinatario attraverso molteplici nodi intermedi (router)
Sottorete
Sottorete
Sottorete
Router
Router
Router
42
Instradamento - 2
�
I nodi attraverso cui il pacchetto compie il suo percorso (route) vengono determinati usando le tabelle di routing– Le tabelle possono essere determinate staticamente– Le tabelle possono essere aggiornate dinamicamente dai protocoll i
di routing (ad es. RIP)
�
Se lo host destinatario è direttamente collegato allo hostmittente, il datagramma viene incapsulato in un pacchetto di più basso li vello e consegnato direttamente
�
Se lo host destinatario è locali zzato in un’altra rete, ildatagramma viene passato ad unrouter che si occuperà di consegnarlo, seguendo un processo analogo
43
Gli indirizzi simbolici ed i DNS
�
Un indirizzo simboli co può sostituire un indirizzo IP
�
Un indirizzo simboli co è composto da un nome di dominio e da un nome di host– esempio: morgana.elet.polimi.it
�
Il fil e hosts:– esempio:
127.0.0.1 localhost131.175.21.8 www.polimi.it131.175.21.1 morgana morgana.elet.polimi.it
�
I Domain Name Servers (DNS):– costituiscono un data base distribuito per i nomi simbolici
– permettono l ’associazione nome simbolico/indirizzo IP
44
Il protocollo TCP�
Caratteristiche:– protocollo connection-oriented (indirizzo IP -
porta TCP)– fornisce un servizio full-duplex, con
acknowledgee correzione d’errore
�
Due host connessi su Internet possono scambiarsi messaggi attraverso socket TCP
�
TCP costituisce l’ infrastruttura di comunicazione della maggior parte dei sistemi client-server su Internet
45
Il protocollo UDP
� Caratteristiche:– protocollo connectionless(indirizzo IP - porta UDP)
– fornisce un servizio di ril evazione d’errore.
– Non assicura la consegna nè, tantomeno, l’ordine di invio (unreliable, best-effort protocol)
� Utili zzato nelle applicazioni client-server di tipo richiesta/risposta– Esempi:
NFS, DNS
46
I protocolli applicativi
�
Telnet
�
FTP
�
SMTP
�
POP
�
NNTP
�
HTTP
47
Telnet
� Permette ad un utente di collegarsi, attraverso il proprio elaboratore locale, come terminale remoto di un altro elaboratore connesso alla rete
� A connessione avvenuta tutti i caratteri battuti sulla tastiera locale vengono inviati all ’ elaboratore remoto e le risposte da questo generate sono mostrate sullo schermo locale
� Sfrutta una connessione TCP (porta 23) tra elaboratore locale e remoto
48
FTP (File Transfer Protocol)�
Permette il trasferimento di file tra elaboratori diversi connessi in rete
�
Vengono aperte due connessioni TCP per ogni sessione FTP:– una connessione di controllo (porta 20)
– una connessione dati (porta 21)
�
Il protocollo stabili sce il formato dei comandi e dei messaggi scambiati
�
FTP include un meccanismo di autenticazione basato su usernamee password passato dal client al server– lalogin anonymous
�
E’ possibile gestire trasferimenti ASCII (con conversione di formato) o byte (image)
49
SMTP (SimpleMail Transfer Protocol)
�
Gestisce l’ invio di messaggi di posta elettronica attraverso la rete
�
La connessione tra i diversi server di posta avviene attraverso una connessione TCP (porta 25)
�
Ogni utente é identificato dall ’ indirizzo:nomeutente@indirizzo_host
�
Il processo di invio ébatch
50
POP (Post Off iceProtocol)
� Protocollo per la lettura della propria posta da un mail server
� Sfrutta una connessione TCP sulla porta 110
� Fornisce comandi per avere la lista dei propri messaggi, scaricare un messaggio dal server alclient, cancellare un messaggio dal server
� L’autenticazione è basata su una coppia “username-password” che viene scambiata in chiaro traclient e server
51
SMTP e POP: il funzionamento della posta su Internet
Invio(smtp)
Invio(smtp)
Ricezione(pop)
52
MIME� Multi-purposeInternet Mail Extension
� Definizione di un formato per i messaggi multimediali
� Superamento della RFC 822 che definisce lo standard per i messaggi testuali su Internet (linee brevi di caratteri ASCII a 7 bit)
� Progettato per essere facilmente estendibile
� Versione corrente 1.0– RFC 1521-1522
53
Struttura di un messaggio MIME
�
Header– MIME- Ver s ion : specifica la versione dello standard MIME (ad
es. 1.0)– Content - Type : descrive il ti po dei dati contenuti nel body– Content - Transf er - Encoding : descrive il formato di
codifica del messaggio– Content - I D: identifica univocamente il messaggio– Content - Descri ption : descrive il contenuto in linguaggio
naturale
�
Body
�
Header e Body sono separati da un linea vuota
54
Content-Type
�
Type: specifica il tipo generale dei dati
�
Subtype: specifica il tipo particolare
�
Attributi: parametri espressi con coppie attributo=valore dipendenti dal particolare tipo/sottotipo
�
È stato definito un insieme iniziale di tipi/sottotipi
�
Estensioni a questo set devono essere richieste all'IANA (Internet Assigned Numbers Authority)
�
Estensioni non-standard devono essere nominate con un prefisso "X- "
55
Tipi predefiniti
�
text : testo
� Attributi:– charset : set di caratteri utili zzato
� Sottotipi:– plain : testo senza formattazione– richtext : testo con formattazione– html : testo HTML
� Esempio:Content - Type : t ext / pl ain ; charse t =us - ascii
56
Tipi predefiniti�
message : messaggio incapsulato
�
Sottotipi– r fc 822: messaggio in formato
RFC 822– par t i al : porzioni di messaggi
RFC 822 (usato per frammentare messaggi lunghi). I messaggi vengono ricomposti grazie agli attributi id , number , t ota l
– ext er nal - body : riferimento ad una sorgente esterna di dati. Il modo di accesso è definito dall’ attributo access- ty pe(f t p, anon- ft p, tf t p,afs , l ocal - f i l e, ma i l -ser ver )
Fr om: pi ppo
To: t opol i no
MI ME- Ver s i on : 1 . 0
Cont ent - Type: messa ge/ exte r nal - body
name=“s t andar d. ps”
si t e=“f t p. wal t di sney. com”
access - t ype=ANON- FTP
di r ecto r y=“p ub”
mode=“ i mage”
Cont ent - Type: appli cat i on/ posts cr i pt
Cont ent - I D: <i dd6673662882>
57
Tipi predefiniti
�
multipart : oggetto costituito da diversi componenti (body part).
�
Ogni componente possiede uno header e un body separati da una linea vuota, e può essere a sua volta di tipomulti part
�
Attributi:– boundary : specifica la stringa usata per separare i diversi componenti
�
Sottotipi:– mixed : diversi sottotipi indipendenti
– alterna t ive : lo stesso dato viene rappresentato in formati diversi
– parallel : le diverse componenti devono essere visualizzate contemporaneamente
– digest : ogni sottoparte è del tipomessage
58
Tipi predefiniti
�
image : immagini– Sottotipi
• jpeg : immagini JPEG• gif : immagini GIF• X- <form ato> : estensione
�
audio : suoni– Sottotipi
• basic• X- <form ato> : estensione
�
video : filmati– Sottotipi
• mpeg: filmato MPEG• X- <form ato> : estensione
59
Tipi predefiniti
�
appl i cat i on : dati dipendenti dall 'applicazione
�
Sottotipi– octet - str eam: dati binari
– posts cript : filePostScript
– X- <ty pe>: estensione• application /X - java - applet
• application /X - SafeTcl
60
Content-Transfer-Encoding�
Formato di codifica dei messaggi
�
7bit
�
quoted - printable
�
base64
�
8bit
�
binary
�
x- <codifica> : estensione
�
EsempioContent - Type : t ext / pl ain ; charse t =ISO- 8859- 1Content - Transf er - Encoding : base64
61
Content-ID eContent-Description
�
Content-ID
– Etichetta unica che identif ica il messaggio
– Usato nei messaggi message/external-body
– Usato per il caching dei messaggi
�
Content-Description
– Testo in linguaggio naturale
62
NNTP
�
I server di news costituiscono un data base distribuito e repli cato di “articoli ”
�
Il protocollo gestisce lo scambio di articoli t ra server e server (ai fini della repli cazione) e tra server e client
�
Il protocollo utili zza connessioni TCP (porta 119)
�
Le news sono organizzate in un insieme di newsgroup
�
I newsgroupsono organizzati secondo una struttura ad albero– Esempio:
comp.os.linux.announcecomp.os.ms-windows.miscalt.music.prince
63
WWW: funzionamento
�
L’utente richiede una risorsa (solitamente un documento) identificata da un URL
�
Lo user agent (browser) interpreta l’URL e inoltra una richiesta al server opportuno (ftp, http, gopher...)
�
Il server fornisce la risorsa richiesta o un messaggio di errore
�
Lo user agent interpreta i contenuti del messaggio di risposta
�
Se il messaggio è un documento HTML il browser si occupa automaticamente di reperire le sottoparti referenziate nel documento (immagini, applet java...)
�
La risorsa viene presentato all ’ utente, eventualmente con l’ausilio di programmi esterni (mpeg player, audio player)
64
Il www come esempio di applicazione C/S
Richiesta
Risposta
65
Uniform Resource Locator
�
Gli URL definiscono una sintassi e una semantica per l’ identificazione e l’accesso a risorse su Internet
�
Un URL definisce:– quale protocollo (schema) usare per accedere alla risorsa (cioè quale
server contattare)– una coppia <username,password> opzionali (da usare ad esempio nel
caso di FTP)– il nome del server e la porta presso cui è disponibile il servizio– il path della risorsa– il nome della risorsa– eventuali parametri da passare alla risorsa
�
Esempio:http://www.elet.polimi.it:80/people/index.html
66
URL: protocoll i supportati
�
http Hypertext Transfer Protocol
�
ftp File Transfer Protocol
�
gopher Gopher Protocol
�
mailto Indirizzo di posta elettronica
�
news Usenet news
�
nntp Usenet news con solo accesso locale
�
telnet, rlogin, tn3270 Riferimento a sessioni interattive
�
wais Wide AreaInformation Server
67
Esempi di URL
� ftp://guest:[email protected]/pub/guest/dist101.tar.gz;type=I
� http://www.w3.org/
� http://www.ms.com/cgi-bin/prog.tcl/pathinfo?mychoice=yes&options=rrf
� mail to:[email protected]
� telnet://ipese3.elet.polimi.it
� news:comp.os.linux
68
HTTP (HyperText Transfer Protocol)�
Protocollo per il trasferimento di informazioni traclient e server WWW
�
Sfrutta connessioni TCP (porta 80)
�
Caratteristiche:– ogni connessione permette una singola
transazione
– il trasferimento dati è binario
69
Il linguaggio HTML
� HyperText Markup Languagepermette di creare semplici documenti ipertestuali platform-independent
� Versione corrente: 4
� Un documento HTML è costituito da testo e da un insieme di TAG
� I TAG HTML specificano:– il formato del testo (grassetto, titolo, ecc.)– connessioni ipertestuali con altri documenti– tabelle, applet, ...
70
<H1 ALIGN=center>La verità</H1>
Start-tag Attributo Carattere codificato End-tag
Elementi base dei TAG
�
A volte è possibile omettere gli end-tag (ad es. <P>)
�
A volte è possibile omettere i valori degli attributi
�
I tag e i nomi degli attributi sono case-insensiti ve
�
Alcuni caratteri speciali (<,>,&,” ,à) vanno codificati con una sequenza di escape &#xxx;
71
Struttura di un documento HTML
�
Un documento HTML è delimitato dal tagHTML ed è composto da:– Head: delimitato dal tagHEAD contiene le
metainformazioni del documento: come minimo il titolo (tagTITLE)
– Body: delimitato dal tagBODY contiene il corpo del testo
72
Head: Elementi fondamentali� TITLE definisce il tit olo del documento e
viene usato dal browser come nome di riferimento del documento all ’ interno deibookmark
� BASE definisce un URL di riferimento per gli URL relativi (attributo HREF)
73
Body: Elementi fondamentali
�
Il body contiene il testo della pagina formattato utili zzando i diversi tag disponibili
�
Tra questi vi sono (HTML 4)– Commenti: <!-- commento -->– Heading: H1,…, Hn
– Markup– Liste– Immagini– Link ipertestuali– Applet– Forms– Tabelle– Frames
74
Pregi e difetti di HTML
�
Pregi– Semplice
– Standard
– Indipendente dalla piattaforma (un file html è un file di puro testo)
�
Difetti– All ’ interno di una pagina html è impossibile mantenere separati gli
aspetti di contenuto da quelli di formattazione
– E’ quasi impossibile ottenere pagine che siano contemporaneamente facili da consultare a video e su carta
�
Soluzione: i CSS
75
I cascading style sheet
�
I CSS permettono una agevole separazione tra forma e contenuto– Per ogni pagina html è possibile specificare le caratteristiche di
formattazione di ogni tag• Ad esempio è possibile dire che il tagH1 deve apparire in bold, 20pt,
blu
– Tale specifica può essere inserita nello header della pagina…– … o può apparire in un file distinto
• In tal modo è possibile centralizzare in un unico punto gli aspetti di formattazione relativi a tutte le pagine di un certo sito
�
Il meccanismo del cascading permette di differenziare in maniera agevole tra caratteristiche generali e caratteristiche specifiche di una singola pagina
�
E’ possibile associare “stili ” diversi a diversi supporti (video, carta, ecc.)
76
XML: un linguaggio a markupestensibile
�
L’Extensible Markup Language (XML) è uno standard del W3C nato nel febbraio del 1998
�
Si tratta di un li nguaggio a markup estensibile– Un sottoinsieme di SGML– Con il quale è possibile creare nuovi tag
�
Tale li nguaggio può essere usato per descrivere, in forma testuale, informazioni strutturateEs. – Descrivere un prodotto avente un codice, un colore, una
descrizione testuale– Descrivere un prodotto composto da parti ognuna delle quali
caratterizzata da informazioni specifiche
�
Il suo ambito naturale di utilizzo è quindi nel supporto alle attività di business-to-business
77
XML: un linguaggio a markupestensibile
�
Come tutte le specifiche W3C, XML è uno standard aperto e indipendente dalla piattaforma
�
Un documento XML è un documento di puro testo composto da dati e tag– In tal senso un documento XML assomiglia ad
un documento HTML• L’ intero li nguaggio HTML può essere definito
usando XML
78
XML: un esempio<?xml v ersion ="1.0" stand alone =" yes "?><person >
<name><title >I ng.</ t itle ><first - name>Mario</ f irst - name><last - name>Rossi</ l ast - name>
</ name><addres s type =“work ” >
<street >P. zza Leona r do da Vinci </stre et><number >1</ number ><city>M i lano< / city><countr y>Ital i a</co untry><zipcod e>2013 3</ zip code>
</ addre ss>
</ perso n>
79
XML vs. HTML
�
HTML è un linguaggio di descrizione di pagina– I tag HTML permettono di descrivere come certe informazioni
dovranno apparire a video
– HTML fornisce informazioni legate all ’ aspetto dei dati
�
XML è un linguaggio di descrizione di dati– I tag XML nascono per definire informazioni riguardanti il ti po del
dato, come esso sia strutturato e cosa le diverse parti rappresentino
�
I tag HTML sono predefiniti– Nuove versioni di HTML aggiungono sempre nuovi tag
�
XML permette la definizione di nuovi tag
80
Possibili utilizzi di XML�
In generale XML facilit a lo scambio di dati tra applicazioni– Per applicazioni di business-to-business– Per permettere l’ interoperabilit à tra applicazioni diverse
• Es. Database
– Per creare formati standard che superino i vincoli dei formati proprietari (es. file word vs. XML)
�
Miglioramento delle tecnologie di ricerca– Es. ricerca di informazioni commerciali (prezzo migliore per un
certo tipo di prodotto)
�
Scambio di informazioni tra agenti o tra agenti e siti
�
Se HTML è il li nguaggio per il “ rendering” di informazioni sotto forma di pagine web, XML è il li nguaggio per lo scambio dati su web
81
Caratteristiche di un documento XML
�
Ogni documento XML inizia con una dichiarazione nella forma:– <?xml version="1.0" standalone="yes"?>
�
Un documento XML può essere:– Ben formato
– Valido
�
Un documento ben formato soddisfa le regole generali di XML– Per ogni tag aperto ne esiste uno chiuso
– Vengono rispettate le regole di inclusione
– ...
�
Un documento valido è un documento ben formato al quale è associato un document type definition (DTD)– Il DTD definisce quali tag possano essere utili zzati e come
82
Documenti ben formati
�
Un documento XML è “ben formato” se:– Ha uno ed un solo elemento radice
• Che non è contenuto all ’ interno di nessun altro elemento
– Viene rispettata la regola di corretto annidamento tra elementi• Per ogni start-tag interno ad un elemento X esiste un end-tag posto
prima della fine di X
– Vengono rispettate le regole sulla sintassi dei tag• Uso di soli caratteri alfanumerici nel nome del
tag, …
�
Un documento ben formato può essere utili zzato per descrivere un qualsiasi tipo di dato
�
Ad esso non è espli citamente associato alcun descrittore del tipo
83
I DTD
�
Un DTD definisce le regole che un documento XML deve soddisfare per essere considerato valido rispetto a quel DTD
�
Tali regole definiscono nome e tipo del contenuto di ogni elemento che può apparire nel documento
�
Nonché le regole che definiscono dove tale elemento può o deve apparire all ’ interno del documento
�
Un DTD rappresenta la definizione della grammatica di un li nguaggio– Il li nguaggio che deve essere usato per definire tutti i documenti
validi rispetto a quel DTD
84
I DTD: Un esempio
<!ELEMENT MEMO (TO,FROM,SUBJECT,BODY,SIGN)>
<!ATTLIST MEMO importance (HIGH|MEDIUM|LOW) "LOW">
<!ELEMENT TO (#PCDATA)>
<!ELEMENT FROM (#PCDATA)>
<!ELEMENT SUBJECT (#PCDATA)>
<!ELEMENT BODY (P+)>
<!ELEMENT P (#PCDATA)>
<!ELEMENT SIGN (#PCDATA)>
<!ATTLIST SIGN signatureFile CDATA #IMPLIED
email CDATA #REQUIRED>
85
Documenti validi
�
Un documento XML è “ valido” se:– E’ ben formato– Ha un DTD associato– E’ conforme al DTD associato
• Rispetta le regole sintattiche ivi definite
�
Un documento XML valido inizia con la dichiarazione:– <?xml ve r sion =" 1.0" s tanda l one=“ no"?>
�
L’associazione “documento XML” – DTD si ottiene tramite l’uso del tag DOCTYPE nel documento XML:– <!DOCTYPE MEMO SYSTEM " memo. dtd ">
oppure<!DOCTYPE MEMO [ … ]
86
XML: un insieme di tecnologie
�
CSS
�
XSL
�
XSLT
�
XPath
�
DOM
�
…
87
XML: Quali strumenti
� Strumenti di editing
� Browser
� Strumenti per la verifica di correttezza– Verifica che un documento sia ben formato– Verifica che un documento sia valido
� Strumenti per il parsing– Creano un albero di oggetti che descrive il documento
XML– Tipicamente disponibili per Java e C++– Generalmente consentono anche il passaggio inverso
88
I motori di ricerca per il WWW�
Directory based:– Mantengono un data base di URL organizzati attraverso un indice di
argomenti– Esempio:
http://www.yahoo.com
�
Text based:– Mantengono un data base di URL indicizzati attraverso un insieme di
parole chiave automaticamente estratte dal documento a cui l ’URL punta– Esempio:
http://www.google.com
�
Archivi universali:– Permettono ricerche su più motori in parallelo– Esempio:
http://www.mamma.com/