Sommario Il concetto di rete di calcolatori Topologia di rete

Sommario
Le reti di calcolatori, una vista d’insieme
Breve storia di Internet
L’Internet Protocol Suite
I protocolli applicativi
Il WWW
Sistemi Informativi in Rete
– Schema di funzionamento
– URL
– Il linguaggio HTML
Le reti di calcolatori e Internet
III Facoltà di Architettura
Politecnico di Milano - sede di Milano Bovisa
La ricerca di informazioni su Internet
Gianpaolo Cugola
Dipartimento di Elettronica e Informazione
[email protected]
http://www.elet.polimi.it/˜cugola
2
1
Il concetto di rete di calcolatori
Topologia di rete
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
3
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
4
Topologie standard
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:
Rete a bus
– Doppino ritorto (twisted pair):
Rete ad anello
Rete a stella
• Costituito da due fini di rame ricoperti da una guaina e ritorti
• Tipicamente utilizzato per trasmissione telefonica
• Consente velocità di trasmissione medio alte (100 Mbs su rete
locale)
• Su rete telefonica le velocità è più bassa (2 Mbps con ADSL)
Topologia irregolare
5
Supporti fisici - 2
6
Supporti fisici - 3
– Cavo coassiale:
– Onde elettromagnetiche:
• 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 (100 Mbps)
• Usate per trasmissioni radio e via satellite
• Consentono trasmissioni su lunghissime distanze con degrado
minimo del segnale
• Permettono velocità di trasmissione medio alte e variabili a
seconda della banda di frequenza utilizzata
– Fibra ottica:
• Costituito da una fibra di vetro ricoperta, capace di trasportare
segnali luminosi
• 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)
7
8
Segnalazione
Modulazione e demodulazione - 1
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
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
– Esempio: il bit 1 viene trasmesso su un cavo come
presenza di tensione, il bit 0 come assenza
Portante
Nel secondo si parla di segnalazione in
modulazione
Segnale 1
Segnale 0
9
10
Trasmissione
Modulazione e demodulazione 2
Modulazione di ampiezza
La trasmissione può essere
– Simplex
• Il senso di trasmissione è fisso (poco usata)
Portante
Segnale 1
Segnale 0
– Half-duplex
• La trasmissione è possibile, alternativamente, nei
due sensi
Modulazione di fase
Portante
– Full-duplex
• La trasmissione è possibile, contemporaneamente,
nei due sensi
Passaggio di fase
11
12
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
In generale una rete non è completa
Per collegare due nodi occorre stabilire 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”
Indirizzamento e commutazione
– Commutazione di circuito
– Commutazione di pacchetto
13
Commutazione di circuito
Commutazione di pacchetto
Quando un nodo A chiede un collegamento con un
nodo B viene creato un circuito fisico che collega
AaB
A
14
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
A
– Messaggi diversi possono prendere strade diverse
Commutazione
A
B
B
B
15
16
Reti a commutazione di pacchetto:
servizi forniti
Protocollo di comunicazione
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
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 allievi durante una lezione
– il docente parla in una lingua comprensibile agli allievi
– gli allievi ascoltano (si spera)
– quando vogliono intervenire gli allievi alzano la mano ed
attendono il permesso del docente per iniziare a parlare
– durante l’intervento degli allievi il docente ascolta
– al termine dell’intervento il docente risponde
– Servizi a circuito virtuale
• Viene stabilito 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
17
Un esempio di rete di calcolatori:
Internet e intranet
Organizzazione a pila dei protocolli
18
Internet: una breve analisi storica
Internet vs. intranet
I protocolli di Internet
I protocolli utilizzati dai calcolatori sono
organizzati secondo una gerarchia
Ogni protocollo si appoggia ai protocolli di
più basso livello per fornire un servizio di
qualità superiore
– 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
– Esempio: protocollo con correzione d’errore
costruito sulla base di un protocollo di puro
trasporto
– Esempi di protocolli applicativi:
• Telnet, SMTP, POP3, IMAP, NNTP, FTP, HTTP
19
20
Internet: “la rete delle reti”
Storia di Internet
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 livelli intermedi: il protocollo
TCP/IP...
I protocolli dei livelli più bassi possono essere
diversi...
... e lo stesso vale per i protocolli dei livelli
superiori, anche se si sono venuti a formare degli
standard di fatto
Fine anni ’60:
– la Defence 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
21
22
Storia di Internet
Internet: architettura logica
Server
web
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 militare) 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 come backbone di Internet (1985)
– Nel 1986 si stima che Internet connettesse circa 20.000 computer
Client
web
Server
ftp
Client
web
Rete
Server
web
Client
ftp
Anni ’90:
– Internet esplode e cresce con ritmi velocissimi (dimensioni e traffico)
Client
web
23
Server
ftp
24
Internet: architettura fisica
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
applicazioni 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
Host
router
Internet
provider
25
26
Internet Protocol Suite
Internet Protocol Suite
ISO/OSI
Il protocollo Ethernet
Presentation
Telnet
NFS
FTP
Application
Web-NFS
SMTP
Transport
Network
HTTP
RPC
TCP e UDP
IP e Protocolli di routing
Session
Data Link
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
della Xerox ottiene la prima standardizzazione ad
opera della IEEE nel 1980
Nella forma attuale viene standardizzato nel 1983
(standard IEEE802.3)
Non specificati
Physical
27
28
Ethernet: caratteristiche - 1
Ethernet: caratteristiche - 2
Il protocollo ethernet consente trasmissioni su rete locale
alla velocità di 10Mbit/s
La connessione avviene secondo lo schema a bus
La trasmissione avviene adottando una codifica in banda
base
L’accesso alla rete avviene secondo la politica CSMA/CD
(Carrier Sense Multiple Access/Collision Detection)
– 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
– 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 collisioni
– In caso di collisioni:
I supporti adottati possono essere diversi:
– Coassiale spesso (1 cm di diametro c.a.)
– Coassiale sottile (5 mm di diametro c.a.)
– Doppino ritorto
• si continua a trasmettere fino al raggiungimento della dimensione
minima del pacchetto (64 byte)
• si attende un tempo arbitrario e si ricomincia a trasmettere
A seconda del supporto adottato varia la lunghezza
massima del cavo e la distanza minima tra le macchine
29
Ethernet: topologia logica e fisica
La velocità di trasmissione effettiva dipende dal
numero di collisioni...
... che a sua volta dipende dal numero di macchine
in rete
Topologia logica ≡
topologia fisica usando coax
Ethernet: conseguenze dell’uso della
politica CSMA/CD
30
– In una situazione reale non si va oltre il 40%÷60% della
banda disponibile
La rete non è adatta alla trasmissione di traffico
multimediale
HUB
Topologia fisica
(usando doppino)
– Non è possibile assicurare una ben precisa qualità del
servizio
31
32
Ethernet: caratteristiche del
protocollo
Il protocollo PPP
Usato per il collegamento diretto (punto a punto)
tra due macchine
Connectionless
– Non viene instaurato alcun tipo di connessione tra
mittente e destinatario
– Tipicamente attraverso l’uso di un modem
Protocollo di livello 2
Assenza di supporto alla correzione d’errore
– Si appoggia ad un protocollo di più basso livello quale
V.90
– Il campo FCS permette solo di riconoscere eventuali
errori ma non esiste supporto alla loro correzione
Può essere utilizzato per convogliare protocolli di
livello 3 diversi quali IP, IPX/SPX, ecc.
Protocollo con connessione
Best-effort
– Il sottosistema di rete non assicura la consegna ma fa
solo “del proprio meglio” per consegnare il messaggio
33
34
Switch e router
Il protocollo IP
Le sottoreti che formano Internet sono collegate
da appositi nodi genericamente chiamati gateway
Caratteristiche:
– protocollo connectionless
– si occupa dell’instradamento e della rilevazione d’errore (nessuna
correzione)
– Si occupano di instradare i messaggi dalla macchina
sorgente alla macchina destinazione
Distinguiamo tra due tipologie di gateway:
Non si assicura:
–
–
–
–
– switch : operano a livello 2 della pila OSI. Sono molto
veloci ed adatti a collegare segmenti ethernet diversi
per ripartire il traffico
– router : operano a livello 3 e 4. Possono effettuare
conversioni di protocollo
35
la consegna,
l’integrità,
la non-duplicazione
l’ordine di consegna
IP si può appoggiare ad una varietà di protocolli di più
basso livello, quali Ethernet, PPP, X.25, Frame Relay,
ATM, ...
36
Gli indirizzi IP
Gestione degli indirizzi
Ogni host possiede un indirizzo IP unico per ogni
interfaccia di rete
Gli indirizzi 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
–
–
–
–
L’uso di assegnare reti di classe A o B a compagnie che
usano un ridotto sottoinsieme degli indirizzi rischia, oggi,
di portare all’esaurimento degli indirizzi disponibili
Sono state proposte diverse soluzioni ad hoc che
consentono di “recuperare” parte degli indirizzi perduti...
... ma l’unica vera soluzione si avrà con il passaggio a IPv6
che userà 128 bit per gli indirizzi
Classe A (0): NetId = 7 bit (128 reti), HostId = 24 bit (16777216 host)
Classe B (10): NetId = 14 bit (16384 reti), HostId = 16 bit (65536 host)
Classe C (110): NetId = 21 bit (2097152 reti), HostId = 8 bit (256 host)
Multicast (1110): indirizzo multicast
– 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
I router hanno due o piu’ indirizzi IP diversi ed
una tabella di instradamento
37
Ancora sugli indirizzi IP
Indirizzi privati
Gli indirizzi 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
Gli indirizzi IP si scrivono come quattro
interi separati da punti
– Esempio: 131.175.5.25
38
L’indirizzo 127.0.0.1 rappresenta
l’interfaccia di loopback
– In questo caso tali indirizzi non dovranno essere visibili da reti
esterne (si usa il meccanismo dell’IP 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
– Indirizzo “fittizio” associato alla macchina
corrente
39
40
Instradamento - 2
Instradamento - 1
I datagrammi IP vengono trasportati dal
nodo mittente al nodo destinatario
attraverso molteplici nodi intermedi (router)
– Le tabelle possono essere determinate staticamente
– Le tabelle possono essere aggiornate dinamicamente dai protocolli
di routing (ad es. RIP)
Sottorete
Router
Sottorete
Router
I nodi attraverso cui il pacchetto compie il suo percorso
(route) vengono determinati usando le tabelle di routing
Sottorete
Se lo host destinatario è direttamente collegato allo host
mittente, il datagramma viene incapsulato in un pacchetto
di più basso livello e consegnato direttamente
Se lo host destinatario è localizzato in un’altra rete, il
datagramma viene passato ad un router che si occuperà di
consegnarlo, seguendo un processo analogo
Router
41
Il protocollo TCP
Gli indirizzi simbolici ed i DNS
Caratteristiche:
Un indirizzo simbolico può sostituire un indirizzo IP
Un indirizzo simbolico è composto da un nome di dominio
e da un nome di host
– protocollo connection-oriented (indirizzo IP porta TCP)
– fornisce un servizio full-duplex, con
acknowledge e correzione d’errore
– esempio: morgana.elet.polimi.it
Il file hosts:
– esempio:
127.0.0.1
131.175.21.8
131.175.21.1
42
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
localhost
www.polimi.it
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
43
44
Il protocollo UDP
I protocolli applicativi
Caratteristiche:
– protocollo connectionless (indirizzo IP - porta UDP)
– fornisce un servizio di rilevazione d’errore.
– Non assicura la consegna nè, tantomeno, l’ordine di
invio (unreliable, best-effort protocol)
Utilizzato nelle applicazioni client-server di tipo
richiesta/risposta
– Esempi:
NFS, DNS
Telnet
FTP
SMTP
POP
NNTP
HTTP
45
46
Telnet
FTP (File Transfer Protocol)
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
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 stabilisce il formato dei comandi e dei messaggi scambiati
FTP include un meccanismo di autenticazione basato su username e
password passato dal client al server
– la login anonymous
47
E’ possibile gestire trasferimenti ASCII (con conversione di formato) o
byte (image)
48
POP (Post Office 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
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 al
client, cancellare un messaggio dal server
L’autenticazione è basata su una coppia
“username-password” che viene scambiata in
chiaro tra client e server
SMTP (Simple Mail Transfer Protocol)
49
50
SMTP e POP: il funzionamento
della posta su Internet
MIME
Invio
(smtp)
Ricezione
(pop)
Invio
(smtp)
Multi-purpose Internet 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
51
52
Struttura di un messaggio MIME
Content-Type
Header
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-"
– MIME-Version: specifica la versione dello standard MIME (ad
es. 1.0)
– Content-Type: descrive il tipo dei dati contenuti nel body
– Content-Transfer-Encoding: descrive il formato di
codifica del messaggio
– Content-ID: identifica univocamente il messaggio
– Content-Description: descrive il contenuto in linguaggio
naturale
Body
Header e Body sono separati da un linea vuota
53
54
Tipi predefiniti
text: testo
Attributi:
Tipi predefiniti
– rfc822: messaggio in formato
RFC 822
– partial: porzioni di messaggi
RFC 822 (usato per frammentare
messaggi lunghi). I messaggi
vengono ricomposti grazie agli
attributi id, number, total
– external-body: riferimento ad
una sorgente esterna di dati. Il
modo di accesso è definito
dall’attributo access-type
(ftp, anon-ftp, tftp,
afs, local-file, mailserver)
– charset: set di caratteri utilizzato
Sottotipi:
– plain: testo senza formattazione
– richtext: testo con formattazione
– html: testo HTML
message: messaggio
incapsulato
Sottotipi
Esempio:
Content-Type: text/plain; charset=us-ascii
55
From: pippo
To: topolino
MIME-Version: 1.0
Content-Type: message/external-body
name=“standard.ps”
site=“ftp.waltdisney.com”
access-type=ANON-FTP
directory=“pub”
mode=“image”
Content-Type: application/postscript
Content-ID: <idd6673662882>
56
Tipi predefiniti
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 tipo multipart
Attributi:
image: immagini
– Sottotipi
• jpeg: immagini JPEG
• gif: immagini GIF
• X-<formato>: estensione
– boundary: specifica la stringa usata per separare i diversi componenti
Sottotipi:
audio: suoni
– Sottotipi
– mixed: diversi sottotipi indipendenti
– alternative: lo stesso dato viene rappresentato in formati diversi
– parallel: le diverse componenti devono essere visualizzate
contemporaneamente
– digest: ogni sottoparte è del tipo message
• basic
• X-<formato>: estensione
video: filmati
– Sottotipi
• mpeg: filmato MPEG
• X-<formato>: estensione
57
58
Content-Transfer-Encoding
application: dati dipendenti
dall'applicazione
Sottotipi
– octet-stream: dati binari
– postscript: file PostScript
– X-<type>: estensione
Tipi predefiniti
Formato di codifica dei messaggi
7bit
quoted-printable
base64
8bit
binary
x-<codifica>: estensione
Esempio
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: base64
• application/X-java-applet
• application/X-SafeTcl
59
60
Content-ID e
Content-Description
NNTP
Content-ID
– Etichetta unica che identifica il messaggio
– Usato nei messaggi message/external-body
– Usato per il caching dei messaggi
Content-Description
– Testo in linguaggio naturale
I server di news costituiscono un data base distribuito e
replicato di “articoli”
Il protocollo gestisce lo scambio di articoli tra server e
server (ai fini della replicazione) e tra server e client
Il protocollo utilizza connessioni TCP (porta 119)
Le news sono organizzate in un insieme di newsgroup
I newsgroup sono organizzati secondo una struttura ad
albero
– Esempio:
comp.os.linux.announce
comp.os.ms-windows.misc
alt.music.prince
61
Il www come esempio di
applicazione C/S
WWW: funzionamento
62
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)
ta
os
sp
Ri
ies
ch
Ri
63
ta
64
Uniform Resource Locator
URL: protocolli 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 Area Information Server
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
65
66
HTTP (HyperText Transfer Protocol)
ftp://guest:[email protected]/pub/guest/dist101.ta
r.gz;type=I
http://www.w3.org/
http://www.ms.com/cgi-bin/
prog.tcl/pathinfo?mychoice=yes&options=rrf
mailto:[email protected]
telnet://ipese3.elet.polimi.it
news:comp.os.linux
Esempi di URL
Protocollo per il trasferimento di
informazioni tra client e server WWW
Sfrutta connessioni TCP (porta 80)
Caratteristiche:
– ogni connessione permette una singola
transazione
– il trasferimento dati è binario
67
68
Il linguaggio HTML
Elementi base dei TAG
HyperText Markup Language permette di creare
semplici documenti ipertestuali platformindependent
Versione corrente: 4
Un documento HTML è costituito da testo e da un
insieme di TAG
I TAG HTML specificano:
<H1 ALIGN=center>La verità</H1>
Start-tag
Carattere codificato
End-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-insensitive
Alcuni caratteri speciali (<,>,&,”,à) vanno codificati con
una sequenza di escape &#xxx;
– il formato del testo (grassetto, titolo, ecc.)
– connessioni ipertestuali con altri documenti
– tabelle, applet, ...
Attributo
70
Head: Elementi fondamentali
Un documento HTML è delimitato dal tag
HTML ed è composto da:
TITLE definisce il titolo del documento e
viene usato dal browser come nome di
riferimento del documento all’interno dei
bookmark
BASE definisce un URL di riferimento per
gli URL relativi (attributo HREF)
Struttura di un documento HTML
– Head: delimitato dal tag HEAD contiene le
metainformazioni del documento: come
minimo il titolo (tag TITLE)
– Body: delimitato dal tag BODY contiene il
corpo del testo
69
71
72
Body: Elementi fondamentali
Pregi e difetti di HTML
Il body contiene il testo della pagina formattato utilizzando
i diversi tag disponibili
Tra questi vi sono (HTML 4)
–
–
–
–
–
–
–
–
–
–
Pregi
– Semplice
– Standard
– Indipendente dalla piattaforma (un file html è un file di puro testo)
Commenti: <!-- commento -->
Heading: H1,…, Hn
Markup
Liste
Immagini
Link ipertestuali
Applet
Forms
Tabelle
Frames
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
73
74
XML: un linguaggio a markup
estensibile
I cascading style sheet
I CSS permettono una agevole separazione tra forma e
contenuto
L’Extensible Markup Language (XML) è uno standard del
W3C nato nel febbraio del 1998
Si tratta di un linguaggio a markup estensibile
– Per ogni pagina html è possibile specificare le caratteristiche di
formattazione di ogni tag
– Un sottoinsieme di SGML
– Con il quale è possibile creare nuovi tag
• Ad esempio è possibile dire che il tag H1 deve apparire in bold, 20pt,
blu
Tale linguaggio può essere usato per descrivere, in forma
testuale, informazioni strutturate
Es.
– 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
– 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 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.)
Il suo ambito naturale di utilizzo è quindi nel supporto alle
attività di business-to-business
75
76
XML: un linguaggio a markup
estensibile
XML: un esempio
<?xml version="1.0" standalone="yes"?>
<person>
<name>
<title>Ing.</title>
<first-name>Mario</first-name>
<last-name>Rossi</last-name>
</name>
<address type=“work”>
<street>P.zza Leonardo da Vinci</street>
<number>1</number>
<city>Milano</city>
<country>Italia</country>
<zipcode>20133</zipcode>
</address>
</person>
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 linguaggio HTML può essere definito
usando XML
77
78
XML vs. HTML
Possibili utilizzi di XML
HTML è un linguaggio di descrizione di pagina
• Es. Database
– Per creare formati standard che superino i vincoli dei formati
proprietari (es. file word vs. XML)
XML è un linguaggio di descrizione di dati
– I tag XML nascono per definire informazioni riguardanti il tipo del
dato, come esso sia strutturato e cosa le diverse parti rappresentino
Miglioramento delle tecnologie di ricerca
– Es. ricerca di informazioni commerciali (prezzo migliore per un
certo tipo di prodotto)
I tag HTML sono predefiniti
– Nuove versioni di HTML aggiungono sempre nuovi tag
In generale XML facilita lo scambio di dati tra applicazioni
– Per applicazioni di business-to-business
– Per permettere l’interoperabilità tra applicazioni diverse
– I tag HTML permettono di descrivere come certe informazioni
dovranno apparire a video
– HTML fornisce informazioni legate all’aspetto dei dati
XML permette la definizione di nuovi tag
79
Scambio di informazioni tra agenti o tra agenti e siti
Se HTML è il linguaggio per il “rendering” di
informazioni sotto forma di pagine web, XML è il
linguaggio per lo scambio dati su web
80
Caratteristiche di un documento
XML
Documenti ben formati
Ogni documento XML inizia con una dichiarazione nella forma:
– <?xml version="1.0" standalone="yes"?>
Un documento XML è “ben formato” se:
– Ha uno ed un solo elemento radice
• Che non è contenuto all’interno di nessun altro elemento
Un documento XML può essere:
– Viene rispettata la regola di corretto annidamento tra elementi
– Ben formato
– Valido
• Per ogni start-tag interno ad un elemento X esiste un end-tag posto
prima della fine di X
Un documento ben formato soddisfa le regole generali di XML
– Vengono rispettate le regole sulla sintassi dei tag
– Per ogni tag aperto ne esiste uno chiuso
– Vengono rispettate le regole di inclusione
– ...
• Uso di soli caratteri alfanumerici nel nome del
tag, …
Un documento valido è un documento ben formato al quale è associato
un document type definition (DTD)
– Il DTD definisce quali tag possano essere utilizzati e come
Un documento ben formato può essere utilizzato per
descrivere un qualsiasi tipo di dato
Ad esso non è esplicitamente associato alcun descrittore
del tipo
81
82
I DTD
I DTD: Un esempio
<!ELEMENT
<!ATTLIST
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ATTLIST
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
linguaggio
MEMO
MEMO
TO
FROM
SUBJECT
BODY
P
SIGN
SIGN
(TO,FROM,SUBJECT,BODY,SIGN)>
importance
(HIGH|MEDIUM|LOW) "LOW">
(#PCDATA)>
(#PCDATA)>
(#PCDATA)>
(P+)>
(#PCDATA)>
(#PCDATA)>
signatureFile CDATA #IMPLIED
email
CDATA #REQUIRED>
– Il linguaggio che deve essere usato per definire tutti i documenti
validi rispetto a quel DTD
83
84
Documenti validi
XML: un insieme di tecnologie
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 version="1.0" standalone=“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 [ … ]
CSS
XSL
XSLT
XPath
DOM
…
85
86
XML: Quali strumenti
I motori di ricerca per il WWW
Strumenti di editing
Browser
Strumenti per la verifica di correttezza
– Mantengono un data base di URL organizzati attraverso un indice di
argomenti
– Esempio:
http://www.yahoo.com
– Verifica che un documento sia ben formato
– Verifica che un documento sia valido
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
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
Directory based:
Archivi universali:
– Permettono ricerche su più motori in parallelo
– Esempio:
http://www.mamma.com/
87
88