10
votes

Pourquoi avons-nous besoin de base64 coder des images avant de transmettre?

Duplicaté possible:

Quelle est l'utilisation du codage de base 64?

J'ai vu de nombreux fragments de code que Base64 codez des images avant de transmettre via le protocole HTTP.

Je me demande pourquoi en avons-nous besoin?


0 commentaires

3 Réponses :


-1
votes

Le protocole HTTP n'est pas garanti d'être "8 bits propres", de sorte que cela puisse mangler un flux binaire.


7 commentaires

Pouvez-vous s'il vous plaît expliquer comment http ne peut pas être propre à 8 bits? Comment le serveur va-t-il savoir? Est-il spécifié dans les en-têtes de demande?


C'est juste faux. Vous pouvez envoyer tout ce qui est dans le corps http


@wic, pouvez-vous me montrer où dans la spécification HTTP, il garantit que la connexion est propre de 8 bits, car je ne le trouve pas.


RFC 2616, section 7.2 ( vertbytes.de/tech/webdav/rfc2616. html # rfc.section.7.2 )


@ Julien, je ne vois aucune garantie de ce type, ni ailleurs dans le document à ce sujet. En fait, la section de codage de transfert semble être là précisément parce que Il n'y a pas de garantie de ce type.


Eh bien, vous vous trompez. Http est de 8 bits propre; Le corps du message porte simplement un ensemble d'octets (7.2).


Le codage de repli par défaut est binaire / octet-flux (section 7.2.1). Quoi qu'il en soit, cette discussion est plutôt académique depuis 99,9999% de tout contenu HTTP est envoyée en tant que binaire de toute façon (standard ou non).



2
votes

Ce n'est pas nécessaire, mais cela vous permet d'intégrer des images sans effectuer des demandes HTTP supplémentaires (où, dans certains cas, ce n'est pas possible ou autorisé).


1 commentaires

Utilisation du schéma de données URI, vous voulez dire? en.wikipedia.org/wiki/data_uri_scheme



0
votes

de l'entrée Wikipedia sur base64 :

Le terme base64 fait référence à un spécifique Code de transfert de contenu MIME. Il est également utilisé comme terme générique pour tout schéma de codage similaire qui code Données binaires en le traitant numériquement et la traduire en une base 64 représentation. Le choix particulier de base est due à l'histoire de Ensemble de caractères Encodage: On peut choisir un ensemble de 64 caractères qui est à la fois une partie du sous-ensemble commun à la plupart codages, et aussi imprimable. Cette la combinaison laisse les données improbables être modifié en transit à travers systèmes, tels que le courrier électronique, qui étaient Traditionnellement pas propre à 8 bits.

et spécifiquement concernant http:

codage de base64 peut être utile quand Informations d'identification assez longues est utilisé dans un environnement HTTP. Pour Exemple, une persistance de la base de données Cadre pour les objets Java pourrait utiliser Base64 codant pour coder un relativement Grand identifiant unique (généralement 128 bits Uuids) dans une chaîne pour une utilisation en tant que Paramètre http sur les formulaires http ou http Obtenir des URL. En outre, de nombreuses applications ont besoin Pour encoder des données binaires d'une manière qui est pratique pour l'inclusion dans les URL, y compris dans les champs de formulaire Web caché, et base64 est un codage pratique pour Rendez-les non seulement d'une manière compacte, mais dans un relativement illisible En essayant d'obscurcir la nature de données d'un observateur humain occasionnel.


1 commentaires

Votre devis est génial! Mais cela n'explique pas pourquoi transférer des images dans la base64?