把图片转成base64编码有啥好处吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了把图片转成base64编码有啥好处吗?相关的知识,希望对你有一定的参考价值。

为什么要把图片转成base64呢?

将图片转换为base64编码最常见的应用就是在将网页中的一些图片转黄为base64编码可以实现网页图片在网速 不好的时候先于内容加载和减少http的请求次数来减少网站服务器的负担。

1、关于提前加载图片的应用

这个大家可以去看一下天猫主页的css代码,大家可能没有注意到,在我们使用网速不好的时候网络去访问天猫的时候,在页面没有完全加载出来的时候会出现一个“小猫”的等待图标,增加了用户体验。其实现的原理就是将那张图片使用base64编码放到css中,因为我们都知道,css是在html的头部引用的,要是优先与下面的内容被加载,所以在网速不好的时候就会出现这种效果。

(天猫css截图)

2、关于减少请求次数

我们都知道,我们的网站采用的都是http协议,而http协议是一种无状态的连接,就是连接和传输后都会断开连接节省资源。此时解决的方法就是尽量的减少http请求,此时base64编码可以将图片添加到css中,实现请求css即可下载下来图片,减少了再次请求图片的请求。当然减少http请求次数的方法还有很多,如css sprite技术,将网页中的小图片拼在 一张大图中,下载时只需要一次完整的http请求就可以,减少了请求次数。

参考技术A 主要是:减少了HTTP请求本回答被提问者采纳 参考技术B String str = new String("abc");


为啥要用base64编码来保存图片?

看到淘宝里的html的样式使用base64来保存图片的?为什么要采取这种方式,好处是什么?是加密吗?如果不采取会怎么样,就是直接用jpg,gif保存

什么是Base64?

按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.)

为什么要使用Base64?

在设计这个编码的时候,我想设计人员最主要考虑了3个问题:
1.是否加密?
2.加密算法复杂程度和效率
3.如何处理传输?

加密是肯定的,但是加密的目的不是让用户发送非常安全的Email。这种加密方式主要就是“防君子不防小人”。即达到一眼望去完全看不出内容即可。
基于这个目的加密算法的复杂程度和效率也就不能太大和太低。和上一个理由类似,MIME协议等用于发送Email的协议解决的是如何收发Email,而并不是如何安全的收发Email。因此算法的复杂程度要小,效率要高,否则因为发送Email而大量占用资源,路就有点走歪了。

但是,如果是基于以上两点,那么我们使用最简单的恺撒法即可,为什么Base64看起来要比恺撒法复杂呢?这是因为在Email的传送过程中,由于历史原因,Email只被允许传送ASCII字符,即一个8位字节的低7位。因此,如果您发送了一封带有非ASCII字符(即字节的最高位是1)的Email通过有“历史问题”的网关时就可能会出现问题。网关可能会把最高位置为0!很明显,问题就这样产生了!因此,为了能够正常的传送Email,这个问题就必须考虑!所以,单单靠改变字母的位置的恺撒之类的方案也就不行了。关于这一点可以参考RFC2046。
基于以上的一些主要原因产生了Base64编码。
参考技术A Base64 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输。由于一些二进制字符在传输协议中属于控制字符,不能直接传送需要转换一下。

以上是关于把图片转成base64编码有啥好处吗?的主要内容,如果未能解决你的问题,请参考以下文章

为啥要用base64编码来保存图片?

使用 base64 代替原始文件(png、jpg、jpeg、gif)有啥好处吗?

怎样将一个base64编码的图片保存到数据库,取出来是jpg格式的?

react native 把图片转成base64

php 将图片转成base64

base64图片