Data Uri Schema的使用

最近看了下关于Data Uri的资料.前一篇是我转载的维基百科的内容.这篇主要讲使用.


Data URI Schema的利弊

如前文所讲.Data Uri主要是为了减少Http连接.如

<img src="http://www.google.com/logo.png"/>

替换成

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA
7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC" />

将负载由网络传输转移客户端.
客户端在解析网页时需要更多的时间去解码.同时如果该图被多次使用,那它将多次被解析,即浏览器不会对它做缓存.当然简单的解决办法是写到css中.

例如:

.logobg {
  background: url(data:…)
}

<div class=”navigation logobg”>..
helo, hello
<div class=”footer logobg”>…

<Data URI的利弊>里面提供了例子展示了当调用单个和多个图片时,普通的连接与data uri在性能上的差异.

当然Data URI还有一个弊端.那就是IE对它不支持.


Data URI Schema在XSS中的应用

另外它也可以解决js injection被屏蔽的问题...

例如:

<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></iframe>

该相关内容可以见<XSS with Data URI Scheme>.内容详细介绍了data uri在xss中的使用,以及各浏览器之间的区别.


例子

<data: URL tests>中提供了一系列对Data URI 的例子.可以作为平常的参考.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值