• Data URI


    我们常常会看到网页上有些图片或者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

  • 相关阅读:
    CMS4.0——后知后觉
    《Mysql 入门很简单》(读后感②)
    《Mysql 入门很简单》(读后感①)
    Mysql 入门
    jQuery ajax中serialize()方法增加其他参数
    简单语法
    音频——H5 audio
    js 中的break continue return
    vue再次入手(数据传递②)
    vue再次入手(数据传递①)
  • 原文地址:https://www.cnblogs.com/zyl-Tara/p/12553427.html
Copyright © 2020-2023  润新知