Posta Elettronica e Web - Dipartimento di Informatica

Transcript

Posta Elettronica e Web - Dipartimento di Informatica
Posta Elettronica
a.a. 2002/03
Posta Elettronica e
Web
Š FTP richiede che client e server siano attivi
congiuntamente per poter trasferire un file
„
Servizio sincrono
Š La posta elettronica fornisce un meccanismo di
trasferimento delle informazioni asincrono
Prof. Vincenzo Auletta
„
[email protected]
http://www.dia.unisa.it/~auletta/
„
„
„
Università degli studi di Salerno
Laurea e Diploma in Informatica
1
MUA e MTA
Il mittente manda un messaggio all’host del
destinatario
Il messaggio viene conservato (per un certo periodo)
fino a quando non può essere consegnato
L’host del destinatario riceve e conserva il messaggio
Il destinatario lo legge quando vuole
Š Mittente e destinatario non devono operare allo
stesso tempo
Schema di un Sistema di Posta
Š Il sistema di mail è diviso in due parti
„
client
Il Mail User Agent (MUA) si interfaccia con l’utente
utente A
Š Kmail, elm, pine, mh, Outlook express, Eudora
MUA
Š Viene lanciato dall’utente
„
Il Mail Transfer Agent (MTA) si interfaccia con la
rete
coda della
posta in
uscita
connessione
TCP
Š Sendmail
porta
25
Š È un demon che opera in background
Š MUA
e MTA comunicano
meccanismo di spooling
„
2
attraverso
il
Area privata del file system a cui possono accedere
sia MUA che MTA
MTA
utente B
3
MUA
mailbox
dell’utente
B
MTA
server
Trasmissione di un Messaggio
Affidabilità della Connessione
Š Il client MTA invia il contenuto del messaggio
Š Il MUA copia le mail inviate dall’utente nell’area
solo dopo che è riuscito a creare la connessione
TCP con il server
Š Il messaggio viene cancellato dall’area di spool
solo al termine della connessione
di spool
„
mantiene un identificatore del mittente, del
destinatario, della macchina di destinazione e del
tempo di deposito
Š Il client MTA periodicamente esamina l’area di
spool
„
Š Dopo un certo intervallo di tempo in cui non è
per ogni messaggio non consegnato cerca di creare
una connessione TCP con il server MTA (mail server)
dell’host del destinatario
riuscito a creare la connessione il client MTA
notifica al MUA il fallimento
5
Ricezione di un Messaggio
Š Ogni utente è identificato da un indirizzo di
posta elettronica
spool
„
Per ogni messaggio è specificato a che ora è
stato ricevuto
dell’host
„
l’utente chiede di visualizzare i messaggi
ricevuti
6
Il messaggio viene cancellato dall’area di
spool
solo
quando
l’utente
chiede
esplicitamente di eliminarlo
nome_locale@nome_dominio
Š L’indirizzo di e-mail è indipendente dall’indirizzo
Š Il MUA legge l’area di spool quando
„
„
Indirizzi di Posta e Alias
Š Il MTA copia le mail ricevute nell’area di
„
In genere 3 giorni
Restituisce anche un messaggio con le cause
dell’errore
„
Š Il mail server gira sulla porta 25
4
Si è garantiti che il server lo abbia ricevuto e salvato
sulla sua area di spool
„
„
In genere nome_locale = login e nome_dominio =
nome dell’host
nome_dominio può corrispondere ad un indirizzo IP
differente da quello dell’host
Š indicato da MX nel DNS
7
Š Gli indirizzi possono avere degli alias
„
Es. [email protected] e [email protected]
Architettura del Servizio di
Posta
Standard per la Posta
Elettronica
Š Esistono due standard distinti per il servizio di
posta elettronica
„
„
Uno gestisce il formato dei messaggi che vengono
trasmessi
L’altro stabilisce come i messaggi vengono trasmessi
Š Lo standard per la trasmissione dei messaggi di
posta elettronica su reti TCP/IP è SMTP
Š È possibile far interagire SMTP con altri sistemi
di posta
„
8
Serve un mail exchanger
9
Interazione tra Sistemi di
Mailing
Simple Mail Transfer Protocol
Š SMTP specifica come gli MTA devono scambiarsi
i messaggi
„
Non specifica come i messaggi vengono memorizzati
e con che frequenza deve essere letta l’area di spool
Š Protocollo estremamente semplice
„
„
10
11
Basato su uno schema di richiesta/risposta
Ogni risposta è formata da un codice di 3 interi ed
una stringa esplicativa
Principali Comandi SMTP
12
HELO
Indica il nome del client
MAIL
Identifica il mittente
RCPT
Invia l’indirizzo di un destinatario
DATA
Invia i dati
RSET
Abortisce la trasmissione
VRFY
Chiede al server di verificare l’indirizzo di un
destinatario senza spedire il messaggio
NOOP
Non fa nulla ma obbliga il peer a rispondere con
OK
QUIT
Chiude la connessione
TURN
Inverte il senso della comunicazione
Esempio di Sessione SMTP
13
Formato dei Messaggi
Formato dell’Header
Š Ogni messaggio consiste di due parti separati
Š L’header consiste di vari campi
da un linea vuota
„
„
Header e body
„
Š L’header contiene informazioni di controllo
Š Il body contiene il testo del messaggio
Š Sia il’header che il body possono contenere solo
„
Uno per ogni riga
Ogni campo è identificato da un nome seguito da (:)
Š Alcuni campi sono obbligatori
„
To:, From:, Subject:
Š Altri sono facoltativi
testo (NVT ASCII)
14
220 udsab.dia.unisa.it Ready
Helo ustica.dia.unisa.it
250 udsab.dia.unisa.it
MAIL FROM:<[email protected]>
250 OK
RCPT TO:<[email protected]>
250 OK
RCPT TO:<[email protected]>
550 no such user here
DATA
354 Start mail input: end with <CR><LF>.<CR><LF>
…
QUIT
221 udsab.dia.unisa.it Service closing transmission channel
„
Per trasmettere altri tipi di informazione bisogna
codificarli
15
Reply-to:
Estensioni MIME per Dati non
Testuali
Messaggi Multiparti
Š È possibile dividere il body del messaggio in
Š Le
Multipurpose Internet Mail Extensions (MIME)
consentono di trasmettere dati non testuali tramite e-mail
sezioni
„
Š Per ogni formato di dati si stabilisce una codifica
„
L’header contiene informazioni sul tipo di codifica utilizzata per il
body
MIME-Version: 1.0
Content-Type: image/gif
Conent-Transfer-Encoding: base64
Š MIME stabilisce che ogni formato è identificato da una
coppia type/subtype
16
„
Esistono 7 type
„
È possibile specificare nuovi subtype
17
Utilizzo delle Estensioni MIME
Š Il protocollo SMTP richiede un server che opera
in background
elettronica che visualizzano nella maniera
opportuna gli attachment del messaggio
„
„
„
L’host deve essere sempre connesso alla rete
Š La maggior parte degli utenti utilizzano un
Ogni attachment è identificato da un tipo MIME
Il browser utilizza il tipo ed il sottotipo per stabilire
come visualizzare il messaggio
In genere utilizza un plug-in o un programma esterno
collegamento saltuario alla rete
„
Non possono attivare un mail server
Š L’utente attiva una mailbox presso un host
collegato permanentemente
exchanger)
Š Stessa tecnica utilizzata dai browser web
18
MIME-Version: 1.0
Content-Type: Mulitpart/Mixed; Boundary=SNP
--SNP
Content-Type: image/gif
Content-Transfer-Encoding: base64
…
--SNP
Content-Type: audio/mp3
Content-Transer-Encoding: base64
…
Utilizzo dei Mail Exchanger
Š Consente di creare dei browser di posta
„
Ogni sezione ha un proprio subheader che specifica
il tipo di estensione MIME da utilizzare
„
19
„
alla
rete
(Mail
Periodicamente si collega al Mail Exchanger e scarica
i messaggio presenti nella mailbox
Utilizza un protocollo differente da SMTP
Esempio di Utilizzo dei MX
POP e IMAP
1. L’utente invia un messaggio all’indirizzo
Š POP e IMAP sono protocolli utilizzati per
2.
3.
4.
5.
20
[email protected]
L’MTA chiede al DNS il nome ufficiale di
ustica.dia.unisa.it (ustica.dia.unisa.it)
L’MTA chiede al DNS l’MX di ustica.dia.unisa.it
(udsab.dia.unisa.it)
L’MTA chiede al DNs l’indirizzo IP di
udsab.dia.unisa.it (192.41.218.1)
L’MTA inizia la connessione TCP con la porta
25 TCP di 192.41.218.1
collegarsi al Mail Exchanger
Versioni semplificate di SMTP
„
Š Il Post Office Protocol 3 (POP3) può essere
usato solo per ricevere messaggi
Š L’Internet Message Access Protocol (IMAP)
svolge le stesse funzioni di POP3 ma permette
di gestire meglio le mailbox
Creazione, cancellazione e rinominazione dinamica
„
Š Entrambi i protocolli utilizzano uno schema di
autenticazione
21
Login e password
„
World Wide Web
Architettura del Web
Š È di gran lunga l’applicazione che ha ottenuto il
Š Il Web è un insieme di documenti (Web pages)
maggior impatto
„
„
accessibili attraverso Internet
Š ogni pagina è un documento ipermediale
Introdotto solo agli inizi degli anni 90
Il traffico dati che viaggia su Internet è quasi
completamente prodotto dal web
„
„
Contiene collegamenti ad altri documenti che
possono essere seguiti automaticamente
Contiene non solo testo ma anche immagini ed altri
tipi di dati multimediali
Š L’utente accede alle pagine attraverso un
programma client specializzato nel recuperare e
visualizzare pagine ipermediali
22
23
„
browser
HyperText Markup Language
Uniform Resource Locator
Š Una
Š Ad ogni pagina Web è assegnato un nome che
pagina web è formata da testo
inframezzato a comandi di visualizzazione
(marcatori o tag)
„
„
„
„
„
la identifica univocamente
„
Servono ad indicare al browser come deve essere
visualizzata la pagina
Es. <center> … </center>
Es. <font color=“FF0000”> … </font>
Es. <a href=“prova.html> … </a>
Es.<img source=“ball.jpg>
Š La sintassi dell’URL è la seguente
Š L’Hypertext
24
Markup Language (HTML) è
utilizzato per definire la sintassi di questi
marcatori
25
(schema)://(hostname)[:porta]/path[;parametri][?quer
y]
Es. http://www.dia.unisa.it/~auletta/PUB/PROGRETI/
Es. http://www.linux.org:8080/projects/
Es. http://www.google.it/search?linux
Es. ftp://ftp.suse.com/linux/7.3/
Es. file:///C|/Desktop/home.htm
HyperText Transfer Protocol
Metodi Get e Post
Š HTTP è il protocollo utilizzato per la
Š HTTP
implementa
un
traferimento bidirezionale
comunicazione tra un browser Web ed un server
Web
„
„
„
„
„
„
26
Uniform resource locator (URL)
„
Basato su TCP
Non fornisce affidabilità o controllo degli errori
Basato su un meccanismo di richiesta/risposta
Stateless (non mantiene storia delle precedenti
richieste)
Supporto per il caching
Supporto per proxy
„
meccansimo
di
Con get il browser richiede una pagina al server
Con post il browser invia una pagina al server
Š Per recuperare le slide di questa lezione il
browser invia il comando
GET
http://www.dia.unisa.it/~auletta/PUB/PROGRETI/SLIDE
/applicazioni.pdf HTTP/1.1
27
Connessioni Persistenti
Lunghezza dei Dati
Š HTTP 1.0 apre una nuova connessione TCP per
Š Prima di inviare un elemento il server comunica
ogni file da trasferire
„
„
Come FTP
Per scaricare una pagina HTML con 4 immagini si
devono creare 5 connessioni TCP
Š HTTP
1.1 adotta il meccanismo
connessioni persistenti di default
„
„
28
al client la lunghezza
„
Š Non sempre il server conosce a priori la
lunghezza della pagina che vuole spedire
delle
La connessione viene mantenuta in piedi fino a
quando client e server decidono di chiuderla
Serve un meccanismo per identificare l’inizio e la fine
di ogni lemento spedito sul canale
„
In questo caso la connessione viene chiusa dopo
l0invio della pagina
29
Negoziazione
Tipi di Negoziazione
Š HTTP usa l’header del pacchetto per permettere
Š Negoziazione server-drive
al client ed al server di negoziare alcuni
parametri di comunicazione
„
„
„
Si mettono d’accordo su come deve avere la
comunicazione
„
Š Principali parametri negoziabili
„
„
„
30
Utilizza lo stesso meccanismo utilizzato dalla e-mail e
le estensioni MIME
„
Autenticazione
Rappresentazione (formati accettabili, compressione
utilizzabile)
Lingua
Durata della connessione
Avviata dal browser
Invia una lista di preferenze come parametri dell’URL
richiesto
Il server restituisce la pagina che meglio soddisfa le
richieste del browser
Š Negoziazione server-driven
„
„
„
31
Il browser chiede al server la lista delle opzioni
disponibili
Il server risponde
Il browser sceglie l’opzione ed invia una seconda
richiesta
Accept Header
Richieste Condizionali
Š Il browser usa l’header Accept per specificare i
Š Il browser può inviare richieste condizionali
formati accettabili
„
„
Può specificare anche delle preferenze
Š I formati sono specificati secondo uno standard
„
Š Le condizioni sono specificate in uno specifico
MIME-like
„
„
„
32
„
ES. Accept: text/html,
text/plain; q = 0.5,
text/x-dvi; q = 0.8
Accept-Encoding
Accept-Charset
Accept-Language
Proxy Server
ŠI
proxy server consentono di ridurre
drasticamente la latenza di trasmissione e
alleviare il carico sui server
Š Per usare un proxy server bisogna
„
„
Configurare il browser per contattare il proxy
Configurare il proxy per mantenere le pagine Web
nella cache
Š HTTP prevede specifici header per guidare e
facilitare l’attività dei proxy
34
Il server deve rispondere solo se la condizione è
soddisfatta
Consente di evitare inutili trasferimenti
header
„
33
Es. If-Modified-Since SAT, 13, Apr 2002 05:00:01
GMT