美文网首页
Base64编码的意义以及原理、对象序列化的意义、

Base64编码的意义以及原理、对象序列化的意义、

作者: 洪兴掌管一代 | 来源:发表于2021-10-28 14:10 被阅读0次

    为什么要使用Base64编码:

    Base64编码是从二进制值到某些特定字符的编码,这些特定字符一共64个,(原有2进制流8个bit一个字符,base64重新划分成6个bit表示一个字符,那么范围就变成0~63,即64个值,对应64种字符了)所以称作Base64。

    为什么不直接传输二进制呢?比如图片,或者字符,既然实际传输时它们都是二进制字节流。而且即使Base64编码过的字符串最终也是二进制(通常是UTF-8编码,兼容ASCII编码)在网络上传输的,那么用4/3倍带宽传输数据的Base64究竟有什么意义?

    真正的原因是二进制不兼容。某些二进制值,比如某些不可见字符(我们知道在计算机中的字节共有256个组合,对应就是ascii码,而ascii码的128~255之间的值是不可见字符)在一些硬件上,比如在不同的路由器,老电脑上,表示的意义不一样,做的处理也不一样。同样,一些老的软件,网络协议也有类似的问题。

    但是万幸,Base64使用的64个字符,经ASCII/UTF-8编码后在大多数机器,软件上的行为是一样的。

    综上所述,此编码方式只是用来保证数据传输准确性,而非加密算法。

    对象序列化:

    https://zhuanlan.zhihu.com/p/40462507 这篇文章讲的很详细。对象序列化不是单纯的将对象转为字符数组,因为还要反序列化。所以序列化还要记录对象结构信息。

    总结就是编码是相对字节流或者说字符串而言,使其可以传输,而序列化是将对象数据转为字节流,使其可以传输。

    相关文章

      网友评论

          本文标题:Base64编码的意义以及原理、对象序列化的意义、

          本文链接:https://www.haomeiwen.com/subject/qpgmaltx.html