IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI...

15
D. D. Talia Talia – RETI DI CALCOLATORI RETI DI CALCOLATORI - UNICAL UNICAL 7-1 10110 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI WEB e HTTP D. D. Talia Talia – RETI DI CALCOLATORI RETI DI CALCOLATORI - UNICAL UNICAL 7-2 10110 10110 01100 01100 01011 01011 Applicazioni di Rete World Wide Web URL Web Client Web Server HTTP Futuro del Web

Transcript of IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI...

Page 1: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

1

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-1

1011010110

01100 01100

0101101011

Reti di Calcolatori

IL LIVELLO APPLICAZIONIWEB e HTTP

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-2

1011010110

01100 01100

0101101011

Applicazioni di Rete

World Wide Web

URL

Web Client

Web Server

HTTP

Futuro del Web

Page 2: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

2

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-3

1011010110

01100 01100

0101101011

World Wide Web (WWW)

Il World Wide Web è una architettura software per l’accesso a documenti distribuiti su Internet e collegati tra loro.

“Ragnatela” mondiale di documenti organizzati secondo un modello ipertestuale.

Concetti di base:Internet,ipertesti,multimedialità.

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-4

1011010110

01100 01100

0101101011

World Wide Web (WWW)

Nato nel 1989 al CERN di Ginevra come mezzo per scambiare informazioni.

Nel 1994 è stato fondato il W3C - Consorzio World Wide Web (www.w3c.org).

La prima interfaccia grafica è stata Mosaic.

Page 3: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

3

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-5

1011010110

01100 01100

0101101011

Organizzazione di un testo

lettura sequenziale

pag1

pag2

pag3

pag4

pag7

pag5

pag6

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-6

1011010110

01100 01100

0101101011

Organizzazione di un ipertesto

nodo (pagina)

link

ancora

Page 4: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

4

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-7

1011010110

01100 01100

0101101011

Terminologia per gli Ipertesti sul Web

Browser: programma applicativo per navigare in rete.

Page (pagina): singolo “foglio” di un ipertesto.

Home-page: “punto di ingresso” di un sito web.

Link, iperlink: porzione di una pagina che, se selezionata, permette di raggiungere un altro punto dell’ipertesto o una nuova risorsa.

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-8

1011010110

01100 01100

0101101011

HTML

Gli ipertesti del Web sono scritti usando il linguaggio HyperText Markup Language(HTML).

HTML non è un linguaggio di programmazione!

HTML descrive la disposizione di tutti gli elementi presenti all’interno di un documento ipertestuale. Include documenti in altri formati.

Page 5: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

5

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-9

1011010110

01100 01100

0101101011

HTML

Alcuni pattern (comandi) HTML

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-10

1011010110

01100 01100

0101101011

Grazie al Web si possono condividere delle informazioni ma anche eseguire applicazioni.

E’ possibile creare dei meccanismi di comunicazione interattiva mediante l’uso del linguaggio HTML opportunamente combinato con altri linguaggi di programmazione:

Java, PHP, Javascript,Perl.

HTML

Page 6: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

6

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-11

1011010110

01100 01100

0101101011

Versioni di HTML

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-12

1011010110

01100 01100

0101101011

Web: Modello Client-Server

Il Web usa il modello client-server per lo scambio delle informazioni.

Il client, è realizzato dal browser che “gira” sull’elaboratore dell’utente.

Il server, è un programma applicativo che “gira” sull’elaboratore del fornitore di informazioni (provider).

Page 7: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

7

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-13

1011010110

01100 01100

0101101011

serverclient

clientclient

clientserver

client

server

Web Client-Server

LAN 1

LAN 2

Ogni volta che si usano indirizzi simbolici c’è di mezzo il DNS

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-14

1011010110

01100 01100

0101101011 Gli indirizzi per “trovare” i documenti nel Web sono detti Uniform Resource Locator (URL) e identificano in modo univoco i nodi (i documenti).

protocollo://indirizzodelserver[:portaTCP]/pathname

Uniform Resource Locator

http://www.deis.unical.it/index.htmlè l’indirizzo della home-page del DEIS.

Page 8: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

8

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-15

1011010110

01100 01100

0101101011

Browser Web Aperto ad altri Protocolli

Molti browser web sono in grado di gestire diversi protocolli definiti negli URL.

http HTTP http://www.deis.unical.it/index.html

ftp FTP ftp://ftp.lcs.mit.edu/pub/README

file file locale C:\doc\lezione-reti.ppt

news gruppo news news:comp.os.linux

news articolo news news:[email protected]

gopher Gopher gopher://gopher.cs.umbc.edu/

mailto invio email mailto:[email protected]

telnet login remoto telnet://si.deis.unical.it

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL

1011010110

01100 01100

0101101011

Web Servers

Page 9: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

9

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL

1011010110

01100 01100

0101101011

Web Servers e Download di Pagine Web

Il browser controlla e determina l’URL, (es. www.w3c.org),

Il browser chiede al DNS l’indirizzo IP del sito richiesto,

Il DNS risponde 18.23.0.23,

Il browser crea una connessione TCP sulla porta 80 della macchina 18.23.0.23,

Il browser invia il comando

GET/hypertext/WWW/TheProject.html

Il server invia il file TheProject.html,

Viene chiusa la connessione TCP,

Il browser visualizza il testo del file e quindi le immagini

contenute in esso.

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-18

1011010110

01100 01100

0101101011

Protocollo HTTP

La comunicazione tra client e server Web avviene seguendo il protocollo HTTP.

Hyper Text Transmission Protocol (HTTP) introdotto per trasmettere documenti ipertestuali / ipermedialisulla rete.

Il protocollo defisce l’interazione (richieste e risposte) tra client e server Web.

Le richieste HTTP sono in formato ASCII e le risposte in formato MIME.

Page 10: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

10

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-19

1011010110

01100 01100

0101101011

Protocollo HTTP

Ogni sito Web ha un processo server in ascolto su una porta TCP.

La porta standard è la numero 80 ma può essere usata una porta con numero diverso.

Questo permette di avere più server Web su una stessa macchina.

Il protocollo è senza stato (non c’è memoria delle transazioni).

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-20

1011010110

01100 01100

0101101011

Richieste HTTP

La linea iniziale di una richiesta è formata da 3 parti

GET/index.html HTTP/1.0HostHost:: haldo.deis.unical.itUserUser--AgentAgent:: Mozilla/4.0 (Windows; U; WinXP; en-US; m18)

Gecko/20010131 Netscape6/6.01AcceptAccept:: */*AcceptAccept--LanguageLanguage:: enAcceptAccept--EncodingEncoding:: gzip,deflate,compress,identityKeepKeep--AliveAlive:: 200Connection:Connection: keep-alive

Esempio di richiesta

■ Metodo■ Percorso locale della risorsa richiesta■ Versione di HTTP usata

Linea Iniziale

Header

Page 11: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

11

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-21

1011010110

01100 01100

0101101011

Metodi HTTP

I metodi HTTP definiscono le operazioni possibili su una risorsa

■ GETchiede la lettura di una risorsa Web. Se è seguita dall’intestazione If-Modified-Since il server invia i dati solo se sono stati modificati dopo la data specificata (gestione cache del browser).

■ HEADRichiede solo le intestazioni relative alla risorsa. Serve per verificare le caratteristiche della risorsa senza trasferirla.

■ POSTUtilizzato per inviare dati da elaborare al server. L’intestazione è seguita da un corpo della richiesta che contiene i dati.

■ Altri metodi : PUT, DELETE, LINK e UNLINK.

Occorre avere i permessi

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-22

1011010110

01100 01100

0101101011

Risposta HTTP

La linea iniziale di una risposta contiene informazione di stato

HTTP/1.1 200 OKDate: Wed, 06 Nov 2002 18:45:22 GMTServer: Apache/1.5.10 (Win32)Last-Modified: Wed, 06 Nov 2002 18:40:50 GMTETag: "0-64-3b1eaf7a"Accept-Ranges: bytesContent-Length: 100Connection: closeContent-Type: text/html

<HTML><HEAD><TITLE>Sito Web di Topolino</TITLE></HEAD><BODY><H1>Informazioni principali</H1>……</BODY>

headers

risorsa

Linea vuota

Page 12: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

12

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-23

1011010110

01100 01100

0101101011

Intestazioni

Seguono il formato specificato in RFC 822 anche per l’email

HTTP 1.0 definisce 16 header (tutti opzionali)HTTP 1.1 definisce 46 header (obbligatorio Host:))

Alcuni esempi :User-Agent:

Identifica il programma client che effettua la richiesta. Individua clients, spiders, ecc..

Server:Identifica il server.

Last-Modified:Indica la data di modifica della risorsa. E’ usata per gestire le cache.

Content-Type:Tipo MIME del corpo del messaggio.

Content-Length:Lunghezza in byte del corpo del messaggio.

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-24

1011010110

01100 01100

0101101011

Proxy HTTP

Un proxy HTTP agisce da intermediario fra il client e il server

■ Riceve le richieste dal client,■ Propaga la richiesta al server corretto,■ Gestisce protocolli diversi da HTTP.

Sono usati su LAN per caching o accesso ad Internet tramite firewall per controllare gli accessi alla rete.

Proxy

FTPServer FTP

Risposta HTTP

Richiesta HTTP

Risposta FTP

Richiesta FTP

Page 13: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

13

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-25

1011010110

01100 01100

0101101011

HTTP 1.1

Permette più transazioni su una stessa connessione persistente.

■ Le richieste sono inviate in pipelining e si ricevono le risposte nello stesso ordine.

Risposta più veloce per pagine generate dinamicamente utilizzando la codifica chunked.

■ Non si deve specificare la lunghezza del messaggio nell’intestazione,

■ Il messaggio è scomposto in blocchi (chunks).

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-26

1011010110

01100 01100

0101101011

HTTP 1.1

Ha introdotto il supporto per le cache (If-Modified-Since:)

Uso migliore degli indirizzi IP permettendo di ospitare più siti virtuali su uno stesso server con un solo IP

■ Uso dell’intestazione Host: -> specifica il nome del sito a cui è indirizzata la richiesta.

Page 14: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

14

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-27

1011010110

01100 01100

0101101011

Multi-Homed IP

Un server allo stesso indirizzo IP può gestire più domini.

Richiede l’utilizzo di alias nel DNS.

DNS

Server Web unico

www.x2.org

www.x1.org

118.23.12.1

118.23.12.1

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-28

1011010110

01100 01100

0101101011

Web Server Multi-thread

Un Web server efficiente può gestire le chiamate tramite un insieme di thread che gestiscono le diverse richieste dei client.

Page 15: IL LIVELLO APPLICAZIONI WEB e HTTPtalia/aa0203/reti/reti-lezione7x2.pdf · 2 D. Talia – RETI DI CALCOLATORI - UNICAL 7-3 10110 01100 01011 World Wide Web (WWW) Il World Wide Web

15

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-29

1011010110

01100 01100

0101101011

Presente e Futuro del Web

Pagine Dinamiche;

Semantic Web;

Extended Markup Languge (XML);

Web Services.

D. D. TaliaTalia –– RETI DI CALCOLATORI RETI DI CALCOLATORI -- UNICALUNICAL 7-30

1011010110

01100 01100

0101101011

XML

Semplice esempio di documento XML