Base64理解
2017-10-12 本文已影响45人
拉贝
概念
Base-64编码可以将任意一组字节转换为较长的常见文本字符序列,从而可以合法地作为首部字段值。Base-64编码将用户输入或二进制数据,打包成一种安全格式,将其作为HTTP首部字段的值发送出去,而无须担心其中包含会破坏HTTP分析程序的冒号、换行符或二进制值。
使用
使用呢,网上很多例子,如果非要在这篇博客写上的话,就无异于复制粘贴了,所以就不过多赘述了。
这里附上文章地址:java base64编码的三种方式
使用的原因
其中Ted Zyzsdy的答案相比较之下还是非常不错的。
适用场景
对证书来说,特别是根证书,一般都是作Base64编码的,因为它要在网上被许多人下载。电子邮件的附件一般也作Base64编码的,因为一个附件数据往往是有不可见字符的
优劣势:
槽点
1、使用BASE64编码后,会导致数据量增加33%,对于手机App来讲,不可容忍。流量啊,贵啊,你是运营商派来的吗?
2、额外的编码工作带来的CPU开销,电量开销。(虽然开销很小,蚊子肉也是肉啊亲) 3、现有后端框架,基本上都能轻松处理上传任务。
好处
一个xml当中包含另一个xml数据,此时如果将xml数据直接写入显然不合适,将xml进行适当编码存入较为方便,事实上xml当中的字符一般都是可见字符(0-127之间),但是由于中文的存在,可能存在不可见字符,直接将字符打印在外层xml的数据中显然不合理,那么怎么办呢?可以使用base64进行编码,然后存入xml,解码反之
另一个,比如http协议当中的key value字段,必须进行URLEncode 不然出现的等号可能使解析失败 空格也会使http请求解析出现问题,比如 请求行就是以空格来划分的 POST /guowuxin/hehe HTTP/1.1