SMTP vs HTTP: 7 differenze chiave tra protocolli email e web
Entrambi sono protocolli applicativi (Livello 7 OSI) basati su TCP, ma servono scopi fondamentalmente diversi:
| Aspetto | SMTP (Simple Mail Transfer Protocol) | HTTP (Hypertext Transfer Protocol) |
|---|---|---|
| Scopo principale | Trasmettere email tra server di posta (MTA→MTA) e client→server (MSA) | Trasferire risorse web (HTML, CSS, JS, immagini, dati API) tra client (browser) e server |
| Porte predefinite | 25 (server↔server), 587 (client→server invio), 465 (SMTPS, legacy) | 80 (HTTP), 443 (HTTPS) |
| Modello di comunicazione | Store-and-forward: mittente → relay(i) → server del destinatario → destinatario recupera (POP3/IMAP) | Richiesta-risposta: client richiede URI → server restituisce rappresentazione |
| Formato dati | Comandi di testo semplice (HELO, MAIL FROM, RCPT TO, DATA) + corpo messaggio MIME-encodato | Strutturato: intestazioni HTTP + corpo (HTML, JSON, XML, binario). Stateless. |
| Sicurezza | STARTTLS (TLS opportunistico su 587), SMTPS (TLS implicito su 465), DKIM/SPF/DMARC per autenticazione | HTTPS (TLS su 443), HSTS, CSP, CORS, flag cookie |
| Autenticazione | SMTP AUTH (LOGIN, PLAIN, CRAM-MD5, OAUTHBEARER) dopo STARTTLS | Cookie, Bearer token, Basic Auth, mTLS, OAuth2/OIDC |
| Affidabilità | Code di retry integrate, gestione rimbalzi, greylisting | Livello applicativo: retry, chiavi idempotenza, caching (ETag, Cache-Control) |
Analogia
- SMTP = Servizio postale: consegni la lettera all'ufficio postale; instrada attraverso hub; il destinatario la ritira al suo ufficio postale.
- HTTP = Catalogo bibliotecario: richiedi un libro specifico; il bibliotecario lo recupera e te lo consegna istantaneamente.
Sovrapposizione moderna
- I client di posta (Gmail web, Outlook) usano HTTP/HTTPS per parlare con i server di posta (non SMTP direttamente).
- Le API (REST, GraphQL) usano HTTP come trasporto per tutto — inclusa l'invio di email (tramite API SendGrid, Mailgun).
- Webhook = callback HTTP per eventi email (consegna, rimbalzo, apertura).
SMTP sposta la posta; HTTP sposta il web. Entrambi mantengono in funzione Internet.