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