一般浏览器引用资源时,都是用http和https协议,部分浏览器和所有的ftp软件都会使用ftp协议,引用本地文件会使用file协议,此外还有mms、thunder等各种协议。
不过刚才突然发现Firefox、Chrome和Opera等浏览器还支持data URI协议(IE 6不支持),格式非常简单:
data:资源类型;编码,内容
简单来说,要生成一个html资源,可以这样:
data:text/html;ascii,
hello world
你把上面的链接复制到浏览器地址栏,打开就能看到效果了。
而2进制文件,例如图像、视频和音乐一般是使用base64编码,这会导致体积增大1/3。
例如要显示一个8×8像素的全黑图片,可以这样:
data:image/bmp;base64,Qk1eAAAAAAAAAD4AAAAoAAAACAAAAAgAAAABAAEAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
实际上它还可以作为img等元素的src属性,如果你用支持data协议的浏览器的话,应该可以看到一张图:
如果看不到图的话,赶紧抛弃你那丢人的浏览器吧。
不得不提的是,我觉得它并不合适常规应用,因为存在几个严重问题:
但是如果用来生成缩略图却不错,因为不需要在服务器端生成和维护一张临时图片。
最后说下如何用Python生成data URI协议的链接:
data-result="[object Object]">import base64
然后打开result.txt,里面就是结果了=。=