Data URI

摘要:
DataURIScheme在RFC2397中定义。其目的是将一些小数据直接嵌入到网页中,以避免从外部文件加载。在上面的DataURI中,data表示用于获取数据的合同名称,image/jpeg是数据类型的名称,base64是数据的编码方法,image/jpe文件base64编码的数据后面是逗号。对于HTTPS站点,当混合使用HTTPS和HTTP时,将出现安全提示。HTTPS的成本高于HTTP,因此DataURI在这方面具有更明显的优势。

我们常常会看到网页上有些图片或者css的background-image后跟了一堆的字符串,类似这样子:

data:image/jpeg;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZG...wxMDIZz4NCjwvc3ZnPg==

这个就是Data URI scheme。

Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。常用于将图片嵌入网页。比如上面那串字符,其实是一张小图片,将它赋值给img的src,浏览器中可呈现图片。


在上面的Data URI中,data表示取得数据的协定名称,image/jpeg是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/jpeg文件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图片数据

使用这种方式载入资源的优缺点:

优点:

  • 减少HTTP请求数,没有了TCP连接消耗和同一域名下浏览器的并发数限制。
  • 对于小文件会降低带宽。虽然编码后数据量会增加,但是却减少了http头,当http头的数据量大于文件编码的增量,那么就会降低带宽。
  • 对于HTTPS站点,HTTPS和HTTP混用会有安全提示,而HTTPS相对于HTTP来讲开销要大更多,所以Data URI在这方面的优势更明显。
  • 可以把整个多媒体页面保存为一个文件。

缺点:

  • 无法被重复利用,同一个文档应用多次同一个内容,则需要重复多次,数据量大量增加,增加了下载时间。
  • 无法被独自缓存,所以其包含文档重新加载时,它也要重新加载。
  • 客户端需要重新解码和显示,增加了点消耗。
  • 不支持数据压缩,base64编码会增加1/3大小,而urlencode后数据量会增加更多。
  • 不利于安全软件的过滤,同时也存在一定的安全隐患。

参考:https://www.cnblogs.com/zw1sh/p/9251244.html

免责声明:文章转载自《Data URI》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇dateutilHBase海量数据存储下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

json web token 网上学习笔记

JSON Web Token(JWT) - 实现系统集成授权访问 这是一个第三方系统访问AnyReport报表系统使用JWT授权的实现案例,AnyReport报表系统暴露报表资源URL供第三方系统访问,第三方系统可以使用iframe,src设置为报表链接访问报表资源,这时资源URL类似restful api需要被认证的系统才能访问,通过JWT的好处...

base64图片转化成文件

承接《vue截取video视频中的某一帧》视频截取后保存的是base64格式,没法上传服务器,需要转化一下 //将base64转换为文件 dataURLtoFile(dataurl, filename) { let arr = dataurl.split(',') let mime = arr[0].match(/:(.*?);/)[1];...

GreenPlum 提取数据表信息

参考: https://www.alberton.info/postgresql_meta_info.html https://my.oschina.net/Kenyon/blog/226600 列信息: greenplum: https://www.alberton.info/postgresql_meta_info.html 系统表: greenpl...

SOA、REST 和六边形架构

SOA、REST 和六边形架构 上一篇:《IDDD 实现领域驱动设计-架构之经典分层》 阅读目录: SOA-面向服务架构 REST 与 RESTful 资源(Resources) 状态(State) 六边形架构 DDD 的一大好处就是并不需要使用特定的架构,经典分层架构只是一种,由于核心域位于限界上下文中,我们可以使用多种风格的架构,既然如此,...

在mac中使用Charles抓包操作

抓本地 mac:  proxy – 选中 macOS Proxy  windows:  proxy – 选中 windows Proxy 开启https抓包 电脑端设置 1、先安装信任证书,在Charles菜单栏中选择Help -> SSL-Proxying -> Install Charles Root Certificate 2、安装之...

记一次Hvv中遇到的API接口泄露而引起的一系列漏洞

引言 最近朋友跟我一起把之前废弃的公众号做起来了,更名为鹿鸣安全团队,后面陆续会更新个人笔记,有趣的渗透经历,内网渗透相关话题等,欢迎大家关注 前言 Hvv中的一个很有趣的漏洞挖掘过程,从一个简单的API泄露到一系列漏洞。这次的经历更让我体会到了细心的重要性。 挖掘起始 Hvv中拿到了一大堆的资产,有IP和URL的,我一般会先去手动挖掘已经给了的URL资产...