SMTP vs HTTP : 7 différences clés entre protocoles email et web
Tous deux sont protocoles couche application (OSI Layer 7) basés TCP, mais servent des buts fondamentalement différents :
| Aspect | SMTP (Simple Mail Transfer Protocol) | HTTP (Hypertext Transfer Protocol) |
|---|---|---|
| But principal | Transmettre emails entre serveurs mail (MTA→MTA) et client→serveur (MSA) | Transférer ressources web (HTML, CSS, JS, images, données API) entre client (navigateur) et serveur |
| Ports par défaut | 25 (serveur↔serveur), 587 (client→serveur soumission), 465 (SMTPS, hérité) | 80 (HTTP), 443 (HTTPS) |
| Modèle communication | Store-and-forward : expéditeur → relais → serveur destinataire → destinataire récupère (POP3/IMAP) | Requête-réponse : client demande URI → serveur retourne représentation |
| Format données | Commandes texte brut (HELO, MAIL FROM, RCPT TO, DATA) + corps message encodé MIME | Structuré : en-têtes HTTP + corps (HTML, JSON, XML, binaire). Sans état. |
| Sécurité | STARTTLS (TLS opportuniste sur 587), SMTPS (TLS implicite sur 465), DKIM/SPF/DMARC pour auth | HTTPS (TLS sur 443), HSTS, CSP, CORS, flags cookies |
| Authentification | SMTP AUTH (LOGIN, PLAIN, CRAM-MD5, OAUTHBEARER) après STARTTLS | Cookies, tokens Bearer, Basic Auth, mTLS, OAuth2/OIDC |
| Fiabilité | Files d'attente retry intégrées, gestion rebonds, greylisting | Niveau application : retries, clés idempotence, cache (ETag, Cache-Control) |
Analogie
- SMTP = Service postal : vous donnez lettre à la poste ; elle route via centres ; destinataire récupère à sa poste.
- HTTP = Catalogue bibliothèque : vous demandez livre spécifique ; bibliothécaire le cherche et vous le donne instantanément.
Chevauchement moderne
- Clients email (Gmail web, Outlook) utilisent HTTP/HTTPS pour parler aux serveurs mail (pas SMTP direct).
- APIs (REST, GraphQL) utilisent HTTP comme transport pour tout — y compris envoyer email (via SendGrid, Mailgun APIs).
- Webhooks = callbacks HTTP pour événements email (livraison, rebond, ouverture).
SMTP fait circuler le mail ; HTTP fait circuler le web. Les deux font tourner Internet.
