Caratteristiche e Differenza tra protocollo HTTP e SMTP

Caratteristiche e Differenza tra protocollo HTTP e SMTP

Protocollo HTTP

L’HyperText Transfer Protocol (HTTP) (protocollo di trasferimento di un ipertesto) è un protocollo a livello applicativo usato come principale sistema per la trasmissione d’informazioni sul web ovvero in un’architettura tipica client-server. Le specifiche del protocollo sono gestite dal World Wide Web Consortium (W3C). Un server HTTP generalmente resta in ascolto delle richieste dei client sulla porta 80 usando il protocollo TCP a livello di trasporto.
Più in dettaglio, il protocollo HTTP lavora con un’architettura di tipo client/server: il client esegue una richiesta e il server restituisce la risposta. Nell’uso comune il client corrisponde al browser ed il server la macchina su cui risiede il sito web. Vi sono quindi due tipi di messaggi HTTP: messaggi richiesta e messaggi risposta.

HTTP differisce da altri protocolli di livello 7 come FTP, per il fatto che le connessioni vengono generalmente chiuse una volta che una particolare richiesta (o una serie di richieste correlate) è stata soddisfatta. Questo comportamento rende il protocollo HTTP ideale per il World Wide Web, in cui le pagine molto spesso contengono dei collegamenti (link) a pagine ospitate da altri server diminuendo così il numero di connessioni attive limitandole a quelle effettivamente necessarie con aumento quindi di efficienza (minor carico e occupazione) sia sul client che sul server. Talvolta però questo meccanismo pone problemi agli sviluppatori di contenuti web, perché la natura senza stato (stateless) della sessione di navigazione costringe ad utilizzare dei metodi alternativi, tipicamente basati sui cookie, per conservare lo stato dell’utente.

Protocollo SMTP

L’SMTP rappresenta il cuore ed è il protocollo principale dello strato di applicazione della posta elettronica. E’ definito dalla RFC (Request for Comments) 821 che è stata poi sostituita dalla RFC 2821 datata agosto 1982.
Nonostante la sua vasta diffusione, purtroppo la tecnologia su cui si basa SMTP risulta a volte essere datata anche perchè definita nel lontano 1982. Supporta, infatti, solo il formato ASCII a sette bit per il corpo e le intestazioni dei messaggi. Questo poteva non essere un problema negli anni ’80 ma adesso con il progresso raggiunto nella capacità e velocità di trasmissione e la possibilità di inviare messaggi multimediali con file audio, video o immagini questa restrizione diventa un limite. Per poter spedire un messaggio quindi è richiesto che i dati binari multimediali vengano tradotti in formato ASCII per poi essere decodificati in binario sul lato destinatario.

Il compito principale di SMTP riguarda il trasferimento delle e-mail tra i server di posta. Per fare questo si appoggia al servizio trasferimento affidabile dei dati del protocollo di trasporto TCP. Essendo un protocollo che sfrutta l’architettura client-server i server di posta vengono classificati di volta in volta come client SMTP, se inviano messaggi di posta agli altri server, o come server SMTP se li ricevono.

SMTP utilizza quindi il servizio affidabile TCP sulla porta 25 e solitamente effettua una trasmissione diretta fra server di posta mittente e destinatario non appoggiandosi a nessun server di posta intermedio.

La spedizione consiste in tre fasi:

  1. handshaking (stretta di mano): apertura della connessione TCP, fase di presentazione necessaria per sincronizzare i server e prepararsi per il trasferimento del messaggio. In questa fase il client presenta l’indirizzo e-mail del mittente e del destinatario.
  2. trasferimento del messaggio suddiviso a sua volta in:
    1. inizio invio
    2. elenco dei destinatari
    3. invio del messaggio
  3. chiusura: chiusura della connessione TCP. Trattandosi di una connessione persistente la chiusura della connessione avviene solo quando non ci sono più messaggi da spedire. Per ogni messaggio vengono ripetute le fasi di handshacking e trasferimento.

Differenza HTTP e SMTP

Caratteristiche e Differenza tra protocollo HTTP e SMTP

Particolarmente utile risulta confrontare il protocollo SMTP con il protocollo HTTP. Entrambi riguardano il trasferimento di file da un host ad un altro. In particolare HTTP trasferisce oggetti da un Web server ad un web client che ne ha fatto richiesta, mentre SMTP trasferisce e-mail da un server di posta all’altro. Inoltre usano tutti e due la connessione persistente.

Nonostante tutto presentano alcune differenze rilevanti. Per prima cosa HTTP è un protocollo pull (estrai) e la connessione TCP viene aperta dalla macchina che richiede gli oggetti. SMTP invece è un protocollo di tipo push (spingi), la connessione TCP è aperta dalla macchina che vuole spedire il messaggio. Seconda differenza sta nella codifica ASCII: SMTP la richiede, HTTP non ha questa restrizione. Infine, HTTP usa un messaggio per ogni oggetto mentre SMTP incapsula tutti gli oggetti in un singolo messaggio.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *