Le client Simple Message Queue (anciennement MNS) intègre des options d'encodage Base64. Cette rubrique décrit les scénarios dans lesquels vous devez utiliser l'encodage Base64 pour la production et la consommation de messages.
Contexte
Le format Base64 convertit les données binaires en chaînes ASCII afin de garantir leur transfert sécurisé via des environnements textuels.
Avantages de l'encodage Base64
Compatibilité : Les chaînes encodées en Base64 n'utilisent que des caractères ASCII imprimables. Elles sont ainsi sûres pour les formats textuels tels que les e-mails, JSON et XML, sans risque d'affichage erroné.
Sécurité : Bien que Base64 ne constitue pas un chiffrement, il empêche la lecture directe des données binaires dans certains formats texte brut. Cela ajoute une couche de sécurité.
Simplicité : La plupart des langages de programmation et des bibliothèques proposent une prise en charge native de Base64.
Inconvénients de l'encodage Base64
Augmentation du volume de données : L'encodage Base64 accroît la taille des données d'environ 33 %.
Efficacité réduite : L'encodage et le décodage nécessitent des ressources de calcul supplémentaires. La surcharge peut être significative, en particulier lors du traitement de grands volumes de données.
Faible lisibilité : Les corps de message encodés ne sont pas lisibles par l'homme.
Quand utiliser l'encodage Base64
Modèle de messagerie basé sur les files d'attente
N'utilisez pas l'encodage Base64 si le corps du message ne contient aucun caractère spécial.
Pour envoyer un message, appelez la méthode
message.setMessageBodyAsRawString.Pour recevoir un message, appelez la méthode
message.getMessageBodyAsRawString.
Modèle basé sur les topics (abonnement à une file d'attente/HTTP)
Dans le modèle basé sur les topics, la propriété NotifyContentFormat d'un abonnement détermine le format du message push : SIMPLIFIED, JSON ou XML, comme décrit dans Formats d'abonnement.
-
Format SIMPLIFIED : N'utilisez pas l'encodage Base64 si le corps du message ne contient aucun caractère spécial.
Pour envoyer un message, initialisez l'objet message avec
RawTopicMessage.Pour consommer un message, appelez
message.getMessageBodyAsRawString().
-
Format JSON ou XML : Vous devez utiliser l'encodage Base64, car les chaînes encodées en Base64 conviennent au transfert dans des formats textuels tels que JSON et XML.
Pour envoyer un message, initialisez l'objet message avec TopicMessage. Le corps est automatiquement encodé en Base64 et placé dans le champ Message.
-
Pour consommer un message, appelez
message.getMessageBodyAsRawString();afin d'obtenir la valeur du champ Message, puis décodez-la depuis Base64.JSONObject object = new JSONObject(message.getMessageBodyAsRawString()); String jsonMessageData = String.valueOf(object.get("Message")); String messageBody = new String(Base64.decodeBase64(jsonMessageData));
Modèle basé sur les topics (abonnement par e-mail)
N'utilisez pas l'encodage Base64 si le corps du message ne contient aucun caractère spécial.
Pour envoyer un message, appelez la méthode
message.setMessageBodyAsRawString.Pour recevoir un message, appelez la méthode
message.getMessageBodyAsRawString.
Modèle basé sur les topics (abonnement par SMS)
N'utilisez pas l'encodage Base64 si le corps du message ne contient aucun caractère spécial.
Pour envoyer un message, appelez la méthode
message.setMessageBodyAsRawString.Pour recevoir un message, appelez la méthode
message.getMessageBodyAsRawString.
Modèle basé sur les topics (abonnement Mobile Push)
N'utilisez pas l'encodage Base64 si le corps du message ne contient aucun caractère spécial.
Pour envoyer un message, appelez la méthode
message.setMessageBodyAsRawString.Pour recevoir un message, appelez la méthode
message.getMessageBodyAsRawString.