Protocolli strato applicazione in Internet



Похожие документы
Protocolli applicativi: FTP

Reti di Calcolatori. Il Livello delle Applicazioni

Esempi di applicazioni internet. WEB Trasferimento File Posta Elettronica Sistema dei nomi di dominio (DNS)

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Le Reti Informatiche

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

OSOR. Applicazioni di Rete

Introduzione alla rete Internet

Introduzione alla rete Internet

Capitolo 16 I servizi Internet

Protocolli strato applicazione in Internet

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Architetture Web Protocolli di Comunicazione

Posta Elettronica e Web

Reti di Telecomunicazione Lezione 6

Siti web centrati sui dati (Data-centric web applications)

Applicazioni web centrati sui dati (Data-centric web applications)

Introduzione alla rete Internet

Modulo 1: Posta elettronica

Reti di Calcolatori:

Web e HTTP. path name. host name Realizzato da Roberto Savino.

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

InterNet: rete di reti

Dal protocollo IP ai livelli superiori

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

appunti delle lezioni Architetture client/server: applicazioni client

Livello di Applicazione in Internet

Servizi di rete e web. Prof. Maurizio Naldi A.A. 2015/16

Livello cinque (Livello application)

Protocollo HTTP. Alessandro Sorato

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

Reti di Telecomunicazione Lezione 7

Lo scenario: la definizione di Internet

MANUALE UTENTE FORMULA PEC

Il Protocollo HTTP e la programmazione di estensioni Web

Reti di Telecomunicazione Lezione 8

Internet Architettura del www

- Corso di computer -

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Architettura client-server

PROTOCOLLI APPLICATIVI PER INTERNET

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Reti di calcolatori. Reti di calcolatori

Transmission Control Protocol

Architetture Applicative Il Web

Parte II: Reti di calcolatori Lezione 7

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

La rete Internet. Percorso di Preparazione agli Studi di Ingegneria. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Stack protocolli TCP/IP

. SMTP, POP, IMAP. mail server. smtp [RFC 821] Tre componenti: user agent mail server simple mail transfer protocol: smtp

Internet: architettura e servizi

Ipertesto. Reti e Web. Ipertesto. Ipertesto. Ipertestualità e multimedialità

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Configurazione di Outlook Express

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

La posta elettronica. Informazioni di base sul funzionamento

Telematica II 13. Posta Elettronica

Comprendere cosa è Internet e sapere quali sono i suoi principali impieghi. 25/09/2011 prof. Antonio Santoro

Posta elettronica DEFINIZIONE

Teoria di un server di posta. Corso GNU/Linux Avanzato Torino,

Internet e posta elettronica. A cura di Massimiliano Buschi

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

Elementi di Informatica e Programmazione

ARP (Address Resolution Protocol)

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Standard di comunicazione

Lezione n 1! Introduzione"

Corso Creare Siti WEB

TCP/IP: INDIRIZZI IP SIMBOLICI

Consiglio Nazionale delle Ricerche Area di Ricerca di Bologna Istituto per le Applicazioni Telematiche di Pisa

10110 Reti di Calcolatori IL LIVELLO APPLICAZIONI: DNS, FTP

Reti di Calcolatori

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

MODELLI ISO/OSI e TCP/IP

19. LA PROGRAMMAZIONE LATO SERVER

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

prof. Mario Dalessandro

RETI E SISTEMI INFORMATIVI Domain Name System. Prof. Andrea Borghesan

Gestione degli indirizzi

Транскрипт:

Protocolli strato applicazione in Internet Gruppo Reti TLC nome.cognome@polito.it http://www.tlc-networks.polito.it/ Protocolli di strato applicativo - 1 Modello client-server Tipica applicazione tra client e server Client: inizia comunicazione verso server chiede servizio al server (WWW, email) application transport network data link physical request reply Server: fornisce servizio richiesto se disponibile invio pagine Web, email application transport network data link physical Protocolli di strato applicativo - 2 Pag. 1

Protocolli strato applicazione Risoluzione indirizzi DNS Posta elettronica SMTP, POP3, IMAP Trasferimento file FTP Condivisione file NFS Emulazione di terminale (accesso remoto) telnet World Wide Web HTTP Newsgroup NTTP Gestione rete SNMP Molti protocolli basati su comandi in caratteri ASCII! Protocolli di strato applicativo - 3 DNS: Domain Name System Basato sul concetto di dominio Spazio dei nomi gerarchico con valori arbitrari associati ad ogni etichetta Ogni nome è separato dal successivo dal carattere. La maggior parte dei nomi in Internet sono conformi allo standard suggerito Protocolli di strato applicativo - 4 Pag. 2

DNS: Gerarchia dei nomi Domini di primo livello Gerarchia organizzativa (.com,.edu,.gov,.mil,.net,.org) Gerarchia nazionale (.it,.uk,.fr) Domini di secondo livello Ad esempio quelli universitari (stanford, polito) o quelli di organizzazioni di grandi dimensioni (nsf) Ad ogni nome è associato un tipo, che definisce se l'indirizzo è associato ad un host, ad un utente, ad una casella di posta elettronica Protocolli di strato applicativo - 5 DNS: Caratteristiche Sono supportati gli alias tra nomi logici ed indirizzi IP e viceversa Per accedere ai servizi si consulta un domain name server Le informazioni sono distribuite nella rete su diversi DNS, Domain Name Server Organizzati ad albero con root DNS e DNS dei vari domini Ogni sottorete (logica) Internet ha un proprio DNS primario, che contiene informazioni locali e può essere interrogato da host che appartengono alla stessa o ad altre sottoreti logiche, nonché da altri DNS Protocolli di strato applicativo - 6 Pag. 3

DNS: Caratteristiche Importanza di buone politiche di caching per evitare di contattare troppe volte altri DNS al di fuori della sottorete logica. Ogni DNS risponde ad una well known port (53 per UDP e TCP). Si possono utilizzare direttamente gli indirizzi Internet evitando di contattare il name server. Protocolli di strato applicativo - 7 Posta elettronica Nei sistemi di posta elettronica si possono identificare (utilizzando terminologia OSI): UA (User Agent) interfaccia con l'utente fornisce servizi di invio e ricezione messaggi, gestione liste di indirizzi, gestione cartelle (folder) MTA (Message Transfer Agent) accetta i messaggi dallo UA e si comporta come un ufficio postale elettronico MS (Message Store) memorizzazione messaggi in transito o destinati ad un determinato MTA Protocolli di strato applicativo - 8 Pag. 4

Posta elettronica UA P - UA - UA UA P-UA-MTA P-UA-MS MTA MS P-MTA-MTA MTA P-MTA-MTA MTA MS Presentation (and lower) layer Protocolli di strato applicativo - 9 Posta elettronica: protocolli Sono definibili quattro tipologie di protocolli: Comunicazione tra due UA Comunicazione tra due MTA Comunicazione tra UA e MTA Comunicazione tra UA e MS In OSI sono standardizzati tutti e quattro In Internet solo tre Protocolli di strato applicativo - 10 Pag. 5

Posta elettronica: Internet Gli standard e i protocolli fondamentali sono: il formato dei messaggi di posta (RFC 822), il formato MIME per la definizione del formato dei dati, che estende il formato dell'rfc 822 P-UA-UA il protocollo SMTP (RFC 821), P-MTA-MTA usato anche in alcuni casi come P-UA-MTA ma solo da UA ad MTA il protocollo POP (RFC 1939), quasi P-UA-MS monodirezionale, solo per prelevare, da MS a UA il protocollo IMAP (RFC 2060), P-UA-MS bidirezionale Protocolli di strato applicativo - 11 RFC 822: Standard per il formato dei messaggi Definisce: formato per il trasferimento di messaggi ASCII puri (7 bit) formato degli indirizzi di posta elettronica Divisione solamente concettuale tra busta (envelope) e contenuto (message) Ogni mail contiene una intestazione (envelope) in ASCII e di seguito il messaggio stesso in ASCII (segnalazione in banda) Protocolli di strato applicativo - 12 Pag. 6

RFC 822: Standard per il formato dei messaggi Ogni campo (riga) dell'intestazione contiene una parola chiave, seguita dal carattere ':' e da un valore. Ad esempio From: andrea@polito.it (Andrea Bianco) Gli indirizzi sono indicati come nome_utente@host.dominio Protocolli di strato applicativo - 13 In-Reply-To References Subject Keywords Date Message-ID Comments Encrypted X- RFC 822: Intestazione Campi dell intestazione Sender To Received from Received by Received via Received with From Reply to CC Descrizione Indirizzo mittente Indirizzo destinatario Messaggio arrivato da (aggiunto ad ogni hop) Messaggio ricevuto da (aggiunto ad ogni hop) Mezzo fisico su cui ha viaggiato Protocollo utilizzato Nome del mittente Indirizzo a cui inviare risposta (automatica) Indirizzo a cui inviare in copia il messaggio Identificatore di messaggio cui si sta rispondendo Altri messaggi relativi Argomento del messaggio Descrizione contenuto Data di invio Identificativo di messaggio Commenti utente Indice in tabella di chiavi di crittografia Messaggi accettati ma non esaminati (compatibilità) Protocolli di strato applicativo - 14 Pag. 7

MIME: Multi-purpose Internet Mail Extension Definizione formato per messaggi multimediali, estensione dei messaggi in formato testo dell'rfc 822 (caratteri ASCII a 7 bit) Struttura messaggio MIME: Intestazione (header) Corpo del messaggio (body) Header e body sono separati da una linea vuota Protocolli di strato applicativo - 15 MIME: principali campi nell header Formato campo: valore MIME-Version: versione dello standard MIME Content-Type: tipo dati contenuti nel body Content-Transfer-Encoding: tipo di codifica utilizzato per i dati contenuti nel body Content-ID: opzionale, identificatore univoco del messaggio Content-Description: opzionale, descrizione non formale del contenuto del body Protocolli di strato applicativo - 16 Pag. 8

MIME: Campi nell header Content-: permetterà di definire futuri campi dell intestazione MIME, distinguendoli, ad esempio, dai campi definiti nell RFC 822 Qualunque altro campo è ignorato (per permettere compatibilità con i campi definiti nell RFC 822) Protocolli di strato applicativo - 17 MIME: un esempio Mime-Version: 1.0 Content-transfer-encoding: 7BIT Content-Type: multipart/mixed; boundary="----=_nextpart_000_01bd388e.a80f7a20" This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. - ------ =_NextPart_000_01BD388E.A80F7A20 Content-Type: text/plain Ti invio una versione aggiornata dei documenti Ciao Protocolli di strato applicativo - 27 Pag. 9

MIME: un esempio - ------ =_NextPart_000_01BD388E.A80F7A20 Content-Type: application/msword; name="hppc_capb.doc" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="hppc_capb.doc 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7 /CQAGAAAAAAAAAAAAAAACAAAArQAAAAAAAAAAEA AArwAAAAEAAAD+////AAAAAKsAAACsAAAA///// /////////////////////////////////////// ////////////////////////////////////// ////////////////////////////////// - ------ =_NextPart_000_01BD388E.A80F7A20-- Protocolli di strato applicativo - 28 SMTP: Simple Mail Transfer Protocol Specifica il protocollo per trasportare un messaggio di posta elettronica da una macchina ad un'altra macchina, ovvero tra due MTA Non specifica come il gestore di mail accetta messaggi da parte dell'utente Non specifica il metodo di memorizzazione e la frequenza di tentativi di invio dei messaggi La comunicazione tra un client ed un server consiste nello scambio di comandi in caratteri ASCII (è quindi leggibile) Utilizza la porta 25 del protocollo TCP Protocolli di strato applicativo - 29 Pag. 10

SMTP I messaggi attendono sempre un riscontro (ACK) Inizialmente si stabilisce una connessione (TCP) tra client e server Il client attende dal server il messaggio 220 READY FOR MAIL Il client risponde con HELO ed identificandosi Il server si identifica con il mesaggio 250 Protocolli di strato applicativo - 30 SMTP Il client può trasferire più messaggi, chiudere la connessione oppure chiedere di scambiare ruolo tra client e server Il trasferimento di un messaggio inizia con il comando MAIL FROM: Il server risponde con 250 OK Seguono una serie di comandi che identificano i destinatari del messaggio: RCPT TO:, ad ognuno dei quali il server risponde con 250 OK oppure con 550 se si verifica un errore Protocolli di strato applicativo - 31 Pag. 11

SMTP Il comportamento in caso di errore non è specificato (ma quasi tutti i client inviano il messaggio a tutti gli altri destinatari e riportano l'errore a chi ha inviato il messaggio) Il client inizia la trasmissione dell'intestazione e del messaggio con comando DATA Il server risponde con 354 Start mail input, seguito dalla sequenza di caratteri utilizzata per terminare il messaggio di mail La comunicazione termina con il comando QUIT Protocolli di strato applicativo - 32 SMTP: esempio di comunicazione Server: 220 Beta.gov Simple Mail Transfer Service Ready Client: HELO Alpha.edu Server: 250 Beta.gov Client: MAIL FROM:<Smith@alpha.edu> Server: 250 OK Client: RCPT TO:<Jones@Beta.edu> Server: 250 OK Client: RCPT TO:<Early@Beta.edu> Server: 550 No such user Protocolli di strato applicativo - 33 Pag. 12

SMTP: esempio di comunicazione Client: DATA Server: 354 Start mail input; end with <CR><LF>.<CR><LF> Client: body of the message Client: body of the message Client: <CR><LF>.<CR><LF> Server: 250 OK Client: QUIT Server: 221 Beta.gov Service closing transmission channel Protocolli di strato applicativo - 34 POP: Post Office Protocol Non conviene mantenere sempre attivo un sistema di trasporto di messaggi di posta elettronica: un calcolatore potrebbe non avere le risorse computazionali per mantenere attivo un SMTP server un calcolatore potrebbe non essere permanentemente attivo e connesso alla rete È necessario utilizzare uno User Agent su tali sistemi Protocolli di strato applicativo - 35 Pag. 13

POP3 Il protocollo POP3 permette di interrogare un server di posta elettronica Fornisce solo la funzionalità di trasferimento dei messaggi dal MS allo UA Servizio POP 3 fornito dal server sulla porta 110; il protocollo utilizza connessioni TCP Protocolli di strato applicativo - 36 POP3: caratteristiche Comandi (ASCII) organizzati per parole chiave case insensitive, seguite da uno o più parametri opzionali Il separatore tra parole chiave e parametri è lo spazio Ad ogni comando del client corrisponde una risposta del server Protocolli di strato applicativo - 37 Pag. 14

POP3: risposte del server Organizzate come: indicatore di stato parola chiave informazione addizionale (con lunghezza massima 512 caratteri) L'indicatore di stato può assumere due valori: +OK e ERR in caratteri maiuscoli Le risposte multilinea sono terminate da una riga contenente il carattere., oltre ai terminatori di linea <CR><LF> Protocolli di strato applicativo - 38 POP3: comandi principali Comandi USER stringa PASS stringa QUIT APOP Descrizione Comandi in Authorization State Nome utente Password Uscita da authorization state (opzionale) Metodo di riconoscimento basato su crittografia Protocolli di strato applicativo - 39 Pag. 15

POP3: comandi principali Comandi STAT LIST [msg] RETR msg DELE msg NOOP RSET QUIT TOP msg # UIDL [msg] Descrizione Comandi in Transaction State Richiesta generica informazioni. La risposta conterrà numero di messaggi e dimensione totale Richiesta informazioni specifiche. La risposta può essere multilinea e contenere numero di messaggio e dimensione più una riga di info per ogni messaggio Richiesta trasmissione messaggio Richiesta cancellazione messaggio. Verifica esistenza del server Cancellazione richieste di cancellazione Chiusura connessione (opzionale) Richiesta invio # linee (esclusa intestazione) del messaggio msg (opzionale) Richiesta assegnazione numero univoco a messaggio Protocolli di strato applicativo - 40 POP3: esempio di comunicazione Server: +OK POP 3 Server ready <1896.697 170952@dbc.mtview.ca.us> Client: APOP mrose c4c933bac560ecc979... Server: +OK mrose maildrop has 2 messages (320 octets) Client: STAT Server: +OK 2 320 Protocolli di strato applicativo - 41 Pag. 16

POP3: esempio di comunicazione Client: LIST Server: +OK 2 messages (320 octets) Server: 1 120 Server: 2 200 Server:. Client: RETR 1 Server: +OK 120 octets Server: < Invio messaggio 1> Server: < Segue invio messaggio 1> Server:. Protocolli di strato applicativo - 42 POP3: esempio di comunicazione Client: DELE 1 Server: +OK message 1 deleted Client: RETR 2 Server: +OK 200 octets Server: < Invio messaggio 2> Server: < Segue invio messaggio 2> Server:. Client: DELE 2 Server: +OK message 2 deleted Client: QUIT Server: +OK POP 3 Server signing off (maildrop empty) Protocolli di strato applicativo - 43 Pag. 17

WWW (World Wide Web): caratteristiche Introdotto dal Cern nel 1990 e presentato nel 1991 Ha avuto una diffusione enorme ed è stata la causa principale dell'esplosione recente di Internet Permette la consultazione di documenti disponibili su Internet in modalità ipertestuale. Un ipertesto è un testo in cui è possibile associare ad alcuni elementi (ad esempio le parole) un riferimento ad altri documenti. Tali parole sono dette ancore o collegamenti ipertestuali. Protocolli di strato applicativo - 44 WWW: caratteristiche Fornisce una interfaccia grafica semplice e intuitiva, che contiene testi, immagini, filmati e che consente di creare interfacce per l'accesso a basi di dati e archivi Permette una compatibilità semplice con i servizi di altro tipo forniti su Internet quali news, ftp, telnet, gopher Protocolli di strato applicativo - 45 Pag. 18

WWW: caratteristiche Le pagine sono create utilizzando il linguaggio HTML (Hyper Text Markup Language), un linguaggio per la descrizione degli ipertesti Lo scambio di messaggi tra server WWW e client WWW si basa sul protocollo HTTP (Hyper Text Transfer Protocol), definito negli RFC 1945 (versione 1.0) e RFC 2068 (versione 1.1) Protocolli di strato applicativo - 46 WWW: funzionamento L'utente (il client) richiede una risorsa specificandone la URL (Uniform Resource Locator) o URI (Uniform Resource Identifier) mediante il browser. La URL non necessariamente si riferisce ad una pagina WWW, ma ad una generica risorsa Internet Il browser interpreta l'url ed inoltra una richiesta al server opportuno utilizzando il protocollo appropriato (FTP, GOPHER, HTTP) Il server fornisce la risorsa richiesta (oppure un messaggio di errore) utilizzando lo stesso protocollo Protocolli di strato applicativo - 47 Pag. 19

WWW: funzionamento Il browser interpreta i contenuti del messaggio di risposta ed agisce di conseguenza Se la risorsa è una pagina WWW, ovvero un documento HTML, il browser automaticamente inoltra la richiesta delle informazioni (filmati, immagini, applet java, ) cui si fa riferimento nella pagina HTML Il browser interpreta la risorsa ricevuta e la presenta sullo schermo eventualmente con l'ausilio di programmi esterni per la presentazione di filmati o di audio di qualità; tali programmi sono detti plugin Protocolli di strato applicativo - 48 WWW: funzionamento I client WWW, i browser, sono quindi programmi che interpretano il linguaggio HTML e presentano sullo schermo le pagine WWW e che utilizzano per il trasferimento delle informazioni il protocollo HTTP e il formato di indirizzamento proprio delle URL I browser sono anche in grado di utilizzare altri protocolli per fornire interfaccia con i servizi più tradizionali disponibili su Internet Protocolli di strato applicativo - 49 Pag. 20

Formati e protocolli per il WWW Formato MIME definizione del formato dei dati, estensione del formato dei messaggi di posta elettronica definiti nell'rfc 822 Formato URL (RFC 2396) definizione del formato utilizzato per identificare le risorse Protocollo HTTP (RFC 2068) trasmissione delle informazioni tra client e server WWW Protocolli di strato applicativo - 50 Formati e protocolli per il WWW Linguaggio HTML descrizione dei documenti ipertestuali Interfaccia CGI per potere dialogare con altre applicazioni non appartenenti al mondo WWW (ad esempio, per ottenere accesso alle basi dati) Protocolli di strato applicativo - 51 Pag. 21

URL: Uniform Resource Locator Per identificare una risorsa su Internet si utilizza una forma di indirizzamento definita in modo formale mediante una sintassi La risorsa è denominata URL (Uniform Resource Locator) oppure URI (Uniform Resource Identifier). Il formato è definito nell'rfc 2396. Protocolli di strato applicativo - 52 URL: Uniform Resource Locator Una URL definisce: un protocollo (servizio) per accedere alla risorsa opzionalmente, una coppia <nome_utente, password>, ad esempio per il servizio ftp il nome del server (un indirizzo IP simbolico o numerico) presso cui il servizio è disponibile ed opzionalmente la porta TCP a cui tale servizio viene fornito il direttorio (path) che contiene la risorsa il nome della risorsa (nome file che la contiene) eventuali parametri che si intende passare alla risorsa Protocolli di strato applicativo - 53 Pag. 22

Ad esempio, la URL URL: Esempio http://hp0tlc.polito.it/~bianco/ identifica: protocollo http server hp0tlc.polito.it path ~bianco come il direttorio in cui trovare la risorsa necessaria Protocolli di strato applicativo - 54 URL: protocolli supportati Protocollo http ftp gopher mailto news telnet Servizio Pagine WWW File Gopher Posta elettronica Usenet news Sessioni interattive Esempio http://www.w3.org/ http://www.alpcom.it/ski/ http://altavista.digital.com/cgibin/query?what=web\&q=andrea+bianco ftp://guest/guest@ftp.ms.com/pub/file.tar.gz;type=i gopher://services.csp.it:70/11/teletext/rai/notizie mailto:bianco@polito.it news:www.polito.it telnet://pol88a.polito.it Protocolli di strato applicativo - 55 Pag. 23

Il protocollo HTTP Il protocollo HTTP (Hyper Text Transfer Protocol) è definito nell'rfc 1945 per la versione 1.0 e nell'rfc 2068 per la versione 1.1 Utilizzato per il trasferimento delle informazioni tra client e server WWW Basato sull'invio di richieste da parte del client risposte da parte del server Stateless (privo di memoria) Protocolli di strato applicativo - 56 HTTP: formato messaggi Un messaggio HTTP permette di trasferire entità (entity) mediante richieste inviate da client WWW e/o risposte inviate da server WWW Indipendentemente dal fatto che sia una richiesta o una risposta, un messaggio HTTP, è formato da una intestazione (header) e, opzionalmente, da un corpo del messaggio (message body), separati mediante una linea vuota. Protocolli di strato applicativo - 57 Pag. 24

Messaggio richiesta http Messaggi di richiesta: ASCII (leggibili dagli umani) Linea di richiesta (GET, POST, HEAD commands) Linee di header Carriage return, line feed indica fine messaggio GET /somedir/page.html HTTP/1.1 Connection: close User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr (extra carriage return, line feed) Protocolli di strato applicativo - 58 Richiesta http: formato generale Protocolli di strato applicativo - 59 Pag. 25

Messaggio di risposta http Linea di stato (protocollo codice di stato commento) header lines HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html data data data data data... dati, ad esempio file HTML Protocolli di strato applicativo - 60 HTTP: funzionamento Il funzionamento si può schematizzare così: il client invia una richiesta al server, normalmente sulla porta TCP 80, chiedendo l'apertura di una connessione ed il trasferimento di una risorsa il server accetta (oppure rifiuta) se il server accetta, invia una risposta contenente la risorsa richiesta se il server rifiuta, invia una risposta contenente il motivo del rifiuto il client chiude la connessione Protocolli di strato applicativo - 61 Pag. 26

HTTP: differenze tra versioni Nella versione 1.0 ogni connessione permette un singolo trasferimento; se il client deve richiedere più risorse per ottenere l'informazione completa, deve aprire una connessione per ogni risorsa. Nella versione 1.1 è possibile mantenere aperta una connessione e richiedere il trasferimento di più risorse. Protocolli di strato applicativo - 62 HTTP: formati delle richieste In una richiesta HTTP, oltre ai campi delle intestazioni generali e di entità, si specificano: nella prima riga il metodo, ovvero la funzionalità richiesta (DELETE, GET, HEAD, OPTIONS, POST, PUT, TRACE) la risorsa cui accedere, ovvero la URL la versione del protocollo utilizzata i campi delle intestazioni di richiesta Protocolli di strato applicativo - 72 Pag. 27

HTTP: formati delle richieste I metodi permettono: GET: richiedere il trasferimento dell'entità cui si fa riferimento nella URL HEAD: richiedere il trasferimento delle meta-informazioni associate alla risorsa, ma non dell'entità stessa. Utilizzata per controlli sull'aggiornamento delle informazioni memorizzate in cache POST: indica al server che l'entità inclusa comprende informazioni utili per il programma cui si fa riferimento nella URL; utilizzato per inviare messaggi sui newsgroup o sulle mailing-list, dati contenuti nei form HTML oppure dati per ricerche su basi dati che prevedono la modifica della base dati stessa Protocolli di strato applicativo - 73 HTTP: formati delle richieste PUT: richiede creazione o modifica della URL cui si fa riferimento DELETE: richiede cancellazione della URL cui si fa riferimento TRACE: utilizzato per debugging; richiede l'invio nella risposta di una copia del messaggio inviato al server OPTIONS: permettere di conoscere le capacità del server e le opzioni supportate. Protocolli di strato applicativo - 74 Pag. 28

HTTP: formati delle risposte Nell'intestazione di una risposta HTTP inviata da un server WWW si specificano: nella prima riga la versione del protocollo HTTP utilizzata un codice che specifica il tipo di esito associato alla richiesta un testo di diagnostica i campi delle intestazioni di risposta Protocolli di strato applicativo - 77 HTTP: classi di codici di risposta Le principali classi di codici di esito della richiesta, identificabili dal primo numero del codice, sono: Codice 1xx 2xx 3xx 4xx 5xx Significato Non utilizzati in HTTP 1.0, informativi in HTTP 1.1 Richiesta portata a termine con successo Richiesta che richiede ulteriori specifiche per essere soddisfatta Richiesta errata o mancanza di autorizzazione per accedere alla risorsa Errore del server (servizio non disponibile) Protocolli di strato applicativo - 78 Pag. 29

HTTP: esempi di richieste GET index.html HTTP/1.0 GET /public_html/index.html HTTP/1.1 Date: Fri, 28 Feb 1997 13:24:05 GMT Pragma: no-cache From: bianco@polito.it Referer: http://hp0tlc.polito.it/~bianco/ User-Agent: Nescape 3.1 If-Modified-Since: Mon, 24 Feb 1997 19:00:00 GMT Protocolli di strato applicativo - 86 HTTP: esempi di risposte HTTP/1.0 200 Document follows Date: Fri, 28 Feb 1997 14:11:22 GMT Server: NCSA/1.5.1 Last-modified: Wed, 20 Nov 1996 16:20:16 GMT Content-type: text/html Content-length: 4168 <HTML><HEAD><TITLE> Andrea Bianco - Home Page </TITLE></HEAD> Protocolli di strato applicativo - 87 Pag. 30

HTTP: esempi di risposte HTTP/1.0 404 Not Found Date: Fri, 28 Feb 1997 14:15:58 GMT Server: NCSA/1.5.1 Content-type: text/html <HEAD><TITLE>404 Not Found</TITLE></HEAD> <BODY><H1>404 Not Found</H1> The requested URL /pippo was not found on this server. </BODY> Protocolli di strato applicativo - 88 Interazione con server http 1. Telnet verso un sito http (porta 80): telnet www.tlc.polito.it 80 Apre connessione TCP sulla porta 80 (porta di default server http) a www.tlc.polito.it. Tutti caratteri inseriti da tastiera inviati alla porta 80 di www.tlc.polito.it 2. Inserire da tastiera una richiesta http GET: GET /index.html HTTP/1.0 3. Si vede sul terminale risposta del server! Premendo due volte return si invia richiesta GET minimale (ma completa) al server http Protocolli di strato applicativo - 89 Pag. 31