a.a. 2002/03 Posta Elettronica e Web Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Posta Elettronica 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 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 MUA e MTA 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 Kmail, elm, pine, mh, Outlook express, Eudora Viene lanciato dall utente utente A MUA coda della posta in uscita MTA 2 Il Mail Transfer Agent (MTA) si interfaccia con la rete Sendmail È un demon che opera in background MUA e MTA comunicano attraverso il meccanismo di spooling Area privata del file system a cui possono accedere sia MUA che MTA 3 utente B MUA mailbox dell utente B connessione TCP MTA server porta 25
4 Trasmissione di un Messaggio Il MUA copia le mail inviate dall utente nell area 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 per ogni messaggio non consegnato cerca di creare una connessione TCP con il server MTA (mail server) dell host del destinatario Il mail server gira sulla porta 25 5 Affidabilità della Connessione Il client MTA invia il contenuto del messaggio 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 Si è garantiti che il server lo abbia ricevuto e salvato sulla sua area di spool Dopo un certo intervallo di tempo in cui non è riuscito a creare la connessione il client MTA notifica al MUA il fallimento In genere 3 giorni Restituisce anche un messaggio con le cause dell errore Ricezione di un Messaggio Indirizzi di Posta e Alias 6 Il MTA copia le mail ricevute nell area di spool Per ogni messaggio è specificato a che ora è stato ricevuto Il MUA legge l area di spool quando l utente chiede di visualizzare i messaggi ricevuti Il messaggio viene cancellato dall area di spool solo quando l utente chiede esplicitamente di eliminarlo 7 Ogni utente è identificato da un indirizzo di posta elettronica nome_locale@nome_dominio L indirizzo di e-mail è indipendente dall indirizzo dell host 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 Gli indirizzi possono avere degli alias Es. auletta@unisa.it e enzo.auletta@unisa.it
Architettura del Servizio di Posta Standard per la Posta Elettronica 8 9 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 Serve un mail exchanger 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 Basato su uno schema di richiesta/risposta Ogni risposta è formata da un codice di 3 interi ed una stringa esplicativa 10 11
Principali Comandi SMTP Esempio di Sessione SMTP 12 HELO MAIL RCPT DATA RSET VRFY NOOP QUIT TURN Indica il nome del client Identifica il mittente Invia l indirizzo di un destinatario Invia i dati Abortisce la trasmissione Chiede al server di verificare l indirizzo di un destinatario senza spedire il messaggio Non fa nulla ma obbliga il peer a rispondere con OK Chiude la connessione Inverte il senso della comunicazione 13 220 udsab.dia.unisa.it Ready Helo ustica.dia.unisa.it 250 udsab.dia.unisa.it MAIL FROM:<auletta@unisa.it> 250 OK RCPT TO:<persiano@unisa.it> 250 OK RCPT TO:<jlopez@unisa.it> 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 Formato dei Messaggi Ogni messaggio consiste di due parti separati 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 testo (NVT ASCII) Per trasmettere altri tipi di informazione bisogna codificarli Formato dell Header L header consiste di vari campi Uno per ogni riga Ogni campo è identificato da un nome seguito da (:) Alcuni campi sono obbligatori To:, From:, Subject: Altri sono facoltativi Reply-to: 14 15
16 Estensioni MIME per Dati non Testuali Le Multipurpose Internet Mail Extensions (MIME) consentono di trasmettere dati non testuali tramite e-mail 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 Esistono 7 type È possibile specificare nuovi subtype 17 Messaggi Multiparti È possibile dividere il body del messaggio in sezioni Ogni sezione ha un proprio subheader che specifica il tipo di estensione MIME da utilizzare 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 delle Estensioni MIME Utilizzo dei Mail Exchanger 18 Consente di creare dei browser di posta elettronica che visualizzano nella maniera opportuna gli attachment del messaggio 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 Stessa tecnica utilizzata dai browser web 19 Il protocollo SMTP richiede un server che opera in background L host deve essere sempre connesso alla rete La maggior parte degli utenti utilizzano un collegamento saltuario alla rete Non possono attivare un mail server L utente attiva una mailbox presso un host collegato permanentemente alla rete (Mail exchanger) Periodicamente si collega al Mail Exchanger e scarica i messaggio presenti nella mailbox Utilizza un protocollo differente da SMTP
20 Esempio di Utilizzo dei MX 1. L utente invia un messaggio all indirizzo auletta@ustica.dia.unisa.it 2. L MTA chiede al DNS il nome ufficiale di ustica.dia.unisa.it (ustica.dia.unisa.it) 3. L MTA chiede al DNS l MX di ustica.dia.unisa.it (udsab.dia.unisa.it) 4. L MTA chiede al DNs l indirizzo IP di udsab.dia.unisa.it (192.41.218.1) 5. L MTA inizia la connessione TCP con la porta 25 TCP di 192.41.218.1 POP e IMAP POP e IMAP sono protocolli utilizzati per 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 22 È di gran lunga l applicazione che ha ottenuto il maggior impatto Introdotto solo agli inizi degli anni 90 Il traffico dati che viaggia su Internet è quasi completamente prodotto dal web 23 Il Web è un insieme di documenti (Web pages) accessibili attraverso Internet ogni pagina è un documento ipermediale 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 browser
HyperText Markup Language Uniform Resource Locator 24 Una pagina web è formata da testo inframezzato a comandi di visualizzazione (marcatori o tag) 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> L Hypertext Markup Language (HTML) è utilizzato per definire la sintassi di questi marcatori 25 Ad ogni pagina Web è assegnato un nome che la identifica univocamente Uniform resource locator (URL) La sintassi dell URL è la seguente (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 26 HyperText Transfer Protocol HTTP è il protocollo utilizzato per la comunicazione tra un browser Web ed un server Web 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 27 Metodi Get e Post HTTP implementa un meccansimo di traferimento bidirezionale 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
28 Connessioni Persistenti HTTP 1.0 apre una nuova connessione TCP per 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 delle connessioni persistenti di default 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 29 Lunghezza dei Dati Prima di inviare un elemento il server comunica al client la lunghezza Utilizza lo stesso meccanismo utilizzato dalla e-mail e le estensioni MIME Non sempre il server conosce a priori la lunghezza della pagina che vuole spedire In questo caso la connessione viene chiusa dopo l0invio della pagina Negoziazione Tipi di Negoziazione 30 HTTP usa l header del pacchetto per permettere al client ed al server di negoziare alcuni parametri di comunicazione Si mettono d accordo su come deve avere la comunicazione Principali parametri negoziabili Autenticazione Rappresentazione (formati accettabili, compressione utilizzabile) Lingua Durata della connessione 31 Negoziazione server-drive 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 Il browser chiede al server la lista delle opzioni disponibili Il server risponde Il browser sceglie l opzione ed invia una seconda richiesta
32 Accept Header Il browser usa l header Accept per specificare i formati accettabili Può specificare anche delle preferenze I formati sono specificati secondo uno standard MIME-like ES. Accept: text/html, text/plain; q = 0.5, text/x-dvi; q = 0.8 Accept-Encoding Accept-Charset Accept-Language 33 Richieste Condizionali Il browser può inviare richieste condizionali Il server deve rispondere solo se la condizione è soddisfatta Consente di evitare inutili trasferimenti Le condizioni sono specificate in uno specifico header Es. If-Modified-Since SAT, 13, Apr 2002 05:00:01 GMT 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