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&#224;</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