Ce qu'est l'encodage Base64 et pourquoi il existe
Base64 est un schéma d'encodage binaire vers texte qui convertit des données binaires arbitraires — images, fichiers, chaînes binaires — en un ensemble de caractères ASCII sûrs (A-Z, a-z, 0-9, +, /) pouvant être transmis de manière fiable partout où le texte est autorisé. Il a été conçu pour le premier internet, où de nombreux protocoles (SMTP, en-têtes HTTP, attributs XML) ne supportaient que du texte ASCII 7 bits.
Chaque valeur encodée en Base64 est environ 33 % plus grande que l'original. C'est le compromis : on paye en taille pour gagner une transmission universelle sûre pour le texte. C'est pourquoi Base64 est utilisé pour incorporer des images en CSS (`data:image/png;base64,...`), encoder des tokens JWT, joindre des fichiers en MIME et stocker des données binaires en JSON et XML.
Base64 standard vs URL-safe
Le Base64 standard utilise `+` et `/` comme deux caractères non-alphanumériques. Ce sont des caractères réservés dans les URLs, ce qui signifie qu'une chaîne Base64 standard dans un paramètre de requête URL cassera sans encodage-pourcent. Le Base64 URL-safe remplace `+` par `-` et `/` par `_`, rendant la sortie sûre pour les URLs et les noms de fichiers.
Les tokens JWT utilisent toujours le Base64 URL-safe. En cas de doute : Base64 standard pour le contenu de fichiers et les emails, Base64 URL-safe pour tout ce qui apparaît dans une URL ou un en-tête HTTP.
Cas d'utilisation courants de Base64
Intégrer de petites images directement en HTML/CSS (data URIs). Encoder des identifiants API dans les en-têtes HTTP Basic Auth. Encodage d'en-tête et de charge utile JWT. Stocker des blobs binaires dans des fichiers `.env` ou des variables d'environnement. Encoder des pièces jointes dans les emails. Transmettre des données binaires via des canaux texte seul comme les payloads d'API JSON.