最近学习的DATA URIS

1.URI是什么?

URI是uniform resource locator的简写,是一系列如何获得数据的协议。在一般的情况下,如果我们需要在HTML页面加入一个链接资源,如CSS、JavaScript文件或一个Image文件,其URL属性会告诉游览器去哪里下载这些文件,然后游览器会请求链接,然后下载这些文件。

为什么要说URL呢?不但是它们很像(我第一眼就把URI看成URL了),而且URL其实也是一种URI,URI是一种通过一定的信息来获得资源的协议,当这种信息为一个URL地址时,URI就表现为URL,但是今天讨论的主要不是这些。

 

2.怎么用?

URI的数据格式很简单,通过RFC 2397的定义,一般格式是:

data:[<mime type>][;charset=<charset>][;base64],<encoded data>

 

说明:data - 指代URI协议

        mime type - 代表数据类型,如png图片则为image/png,若不说明,默认为text/plain

        charset - 如果不使用base64,则使用charset指定的字符类(有关base64的信息:http://en.wikipedia.org/wiki/Base64)

        encoded data - 对应的编码信息

 

示例:12K JPG图片


 

URI data在线转换地址:http://www.abluestar.com/utilities/encode_base64/index.php

 

3.浏览器支持

   Firefox 2+

   Opera 7.2+(数据不能长于4100 characters)

   Chrome (所有版本)

   Safari (所有版本)

   Internet Explorer 8+(数据必须小于32k)

 

4.我们关注的性能(来自秦歌)

       优点:

       1.减少HTTP请求数,没有了TCP连接消耗和同一域名下浏览器的并发数限制。

       2.对于小文件会降低带宽。虽然编码后数据量会增加,但是却减少了http头,当http头的数据量大于文件编码的增量,

          那么就会降低带宽。

       3.对于HTTPS站点,HTTPS和HTTP混用会有安全提示,而HTTPS相对于HTTP来讲开销要大更多,所以Data URI在

          这方面的优势更明显。

       4.可以把整个多媒体页面保存为一个文件。

       缺点:

      1.无法被重复利用,同一个文档应用多次同一个内容,则需要重复多次,数据量大量增加,增加了下载时间。

      2.无法被独自缓存,所以其包含文档重新加载时,它也要重新加载。

      3.客户端需要重新解码和显示,增加了点消耗。

      4.不支持数据压缩,base64编码会增加1/3大小,而urlencode后数据量会增加更多。

      5.不利于安全软件的过滤,同时也存在一定的安全隐患。

posted @ 2009-11-23 19:49  Hank Chu  阅读(1571)  评论(4编辑  收藏  举报