Data URI scheme
2015-02-10 17:10
288 查看
相信有人会注意到这种情况,网页上面有些图片的src或者css背景图片的url后面跟了一大串字符,比如下面代码:
这是为什么呢?这是Data URI scheme。
Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件导入。
比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并转到,就能看到他了,一张1×36的淡蓝色png图片。
在上面的Data URI中,data表示取得数据的协定名称,image/png是数据类型名称,base64是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。
目前,Data URI scheme支持的类型有:
base64简单地说,它把一些8-bit数据翻译成标准ASCII字符,网上有很多免费的base64编码和解码的工具,在php中可以使用base64_encode()进行编码,如:
echo base64_encode(file_get_contents('lbm.png'));
目前,IE8、Firefox、Chrome、Opera浏览器都支持这种小文件签入。
举个图片的例子:
网页中一张图片可以这样显示:
<img src="lbm.png"/>
也可以这样显示:
我们把图像文件的内容直接写在了HTML 文件中,这样做的好处是,节省了一个HTTP 请求。坏处呢,就是浏览器不会缓存这种图像。大家可以根据实际情况进行自由取舍。
<style type="text/css"> .title { background-image:url(data:image/gif;base64,R0lGODlhAQAcALMAAMXh96HR97XZ98Hf98Xg97DX97nb98Lf97vc98Tg973d96rU97ba97%2Fe96XS9wAAACH5BAAAAAAALAAAAAABABwAAAQVMLhVBDNItXESAURyDI2CGIxQLE4EADs%3D); background-repeat:repeat-x; height:28px; line-height: 28px; text-align:center; } </style>
这是为什么呢?这是Data URI scheme。
Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件导入。
比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并转到,就能看到他了,一张1×36的淡蓝色png图片。
在上面的Data URI中,data表示取得数据的协定名称,image/png是数据类型名称,base64是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。
目前,Data URI scheme支持的类型有:
data:, 文本数据 data:text/plain, 文本数据 data:text/html, HTML代码 data:text/html;base64, base64编码的HTML代码 data:text/css, CSS代码 data:text/css;base64, base64编码的CSS代码 data:text/javascript, javascript代码 data:text/javascript;base64, base64编码的javascript代码 data:image/gif;base64, base64编码的gif图片数据 data:image/png;base64, base64编码的png图片数据 data:image/jpeg;base64, base64编码的jpeg图片数据 data:image/x-icon;base64, base64编码的icon图片数据
base64简单地说,它把一些8-bit数据翻译成标准ASCII字符,网上有很多免费的base64编码和解码的工具,在php中可以使用base64_encode()进行编码,如:
echo base64_encode(file_get_contents('lbm.png'));
目前,IE8、Firefox、Chrome、Opera浏览器都支持这种小文件签入。
举个图片的例子:
网页中一张图片可以这样显示:
<img src="lbm.png"/>
也可以这样显示:
<img src="data:image/gif;base64,R0lGODlhAQAcALMAAMXh96HR97XZ98Hf98Xg97DX97nb98Lf97vc98Tg973d96rU97ba97%2Fe96XS9wAAACH5BAAAAAAALAAAAAABABwAAAQVMLhVBDNItXESAURyDI2CGIxQLE4EADs%3D"/>
我们把图像文件的内容直接写在了HTML 文件中,这样做的好处是,节省了一个HTTP 请求。坏处呢,就是浏览器不会缓存这种图像。大家可以根据实际情况进行自由取舍。
相关文章推荐
- Data URI scheme(转)
- Data URI scheme详解和使用实例及图片base64编码实现方法
- Data URI scheme - 数据的uri模式
- 服务器端发送邮件签名采用Data URI scheme包含图片
- 使用 data URI scheme 在小组发言中内嵌图片
- 关于 Data URI Scheme -- data:image/jpg;base64
- data URI scheme
- Data URI scheme 实现数据的URI访问
- JS魔法堂:Data URI Scheme介绍
- 如何进入系统拨号盘,或者直接打电话,发短信,还有data,scheme,uri的关系
- data URI scheme及其应用
- Data URI scheme--数据的URI方案
- 利用 Data URI Scheme进行XSS
- data URI scheme及其应用
- Data URI scheme - 数据的uri模式
- data URI scheme ie不支持
- Data URI scheme 在 html 中嵌入小图片
- http URI scheme与data URI scheme
- Data URI Scheme -- data:image/jpg;base64是什么