今天在浏览网站时发现了一个很奇妙的实现,于是就看了下页面的源码,发现页面中引入了一个很奇怪的URL(data:image/jpeg;base64,/9j/4QecRXhpZgAATU0AKgAAAAgABwESAAMA...),在chrome浏览器的network下看了下,确实发了一个这样的请求,但是没有指定ip,没有请求头,没有响应头,只有一大串字符串,请求会发去哪里呢?好奇的在google上搜了下,原来这是一种data类型的URL格式,可以把小数据直接嵌入到URL中,浏览器会自动解析data:后面的数据。
例如:在浏览器的地址栏中输入
data:text/html,<html><body><p><b>Hello, world!</b></p></body></html>
就会在浏览器中看到Hello,world!,也就是data:text/html后面的数据直接用做网页的内容,而不是网页的地址。
再例如:
data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBFB/ KEAUFFR0Cbng3nQPw68ArZdAlOZppPFIBhH5EAB8b+Tlt9MYQ6i1BuqFaq1CKSVcxZ2Acs6406KUgpt5/ LCKuVgz5BDCSb13ZO99ZOdcZGvt4mJjzMVKqcha68iIePB86GAiOv8CDADlIUQBs7MD3wAAAABJRU5ErkJggg%3D%3D
会在浏览器中看到一张1×36的png图片。
在上面的data url中,data表示取得数据的协定名称,image/png是数据类型名称,base64是数据的编码方法,关于base64是网络上最常见的用于传输8bit字节代码的编码方式之一,可用于在http环境下传递较长的标识信息,逗号后面就是这个image/png文件base64编码后的数据。
目前data类型的url支持的类型有:
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图片数据
base64简单地说,它把一些 8-bit 数据翻译成标准 ASCII 字符,网上有很多免费的base64 编码和解码的工具,在PHP中可以用函数base64_encode() 进行编码,如echo base64_encode(file_get_contents(‘wg.png’));
目前,IE8、Firfox、Chrome、Opera浏览器都支持这种小文件嵌入。
data格式的Url最直接的好处是,这些Url原本会引起一个新的网络访问,因为那里是一个网页的地址,现在不会有新的网络访问了,因为现在这里是网页的内容。这样做,会减少服务器的负载,当然同时也增加了当前网页的大小,而且不会缓存图片。所以对“小”数据特别有好处。
分享到:
相关推荐
所谓 data 类型的Url格式,是在RFC2397中 提出的,目的对于一些 小 的数据,可以在网页中直接嵌入,而不是从外部文件载入
<form method="post" ENCTYPE="multipart/form-data"> file类型职务的普通参数传递到后台问题解决
在后端与前端约定好application/json格式传递数据时,因为后台是go强类型语言,在定义api接口时,某些字段要求是整型类型,但是对于前端来说输入框或者从url中的search取到的参数都是字符串,不得不进行前端类型转换...
连接各种数据库url和驱动器文档 数据库类型 * 1. Oracle url示例:"jdbc:oracle:thin:@localhost:1521:orcl" * 2. Access url示例:"jdbc:odbc:HANFENG" ... Sybase url示例:"jdbc:sybase:Tds:localhost:5007/tsdata
描述DORIS数据格式https://passport.csdn.net/account/login?username=stonespark&activeCode=a4f6c6944b0703709050f5823a827923&service=http%3A%2F%2Fdownload.csdn.net%2Fdownload%2Fgaopu126%2F1494862
url:"vname.do",//请求地址 servlet data:{iname:name},//"iname="+name, 请求参数(传递到服务器) type:"post",//请求参数 dataType:"text",//预期服务器可能返回的数据类型 success:function...
[Dependency Status][david-image]][david-url] [npm-image]: [npm-url]: [下载图片]: : - [downloads-url]: : [david-image]: : style flat- [david-url]: : 存储对象的值,jQuery 样式数据安装npm i min-data ...
git-remote-origin-url 获取Git存储库的远程源URL安装 $ npm install git-remote-origin-url用法 const gitRemoteOriginUrl = require ( 'git-remote-origin-url' ) ;( async ( ) => {console . log ( await ...
项目中post后端要求... url:this.dialog.add.upload_url, method:'post', data, headers:{ 'Content-Type':'application/x-www-form-urlencoded' } }).then(res=>{ if(res.status){ this.$message.success(修
url : 'data/charts.json', reader : { type : 'json', successProperty : 'success', } } }); --------------------------------- var store11 = Ext.create('Ext.data.Store',{ fields: ...
- url: '', // string, 接口地址(必须) - container: '', // string, 容器(必须) - tpl: '', // string, 要解析模板的字符串(必须) - noListStr: '暂无记录', // string, 无记录时,显示的文本(缺省) - sendData: {}...
在上面的Data URI中,data表示取得数据的协定名称,image/png 是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。或许你已经注意到,在有的网页上,图片的 src 或 css ...
1、Request(url,data=data,headers=headers) 2、urlopen(请求对象) 2、响应对象res的方法 1、res.read() ##数据类型:bytes res.read().decode("utf-8") ## 数据类型 :string 2、res.getcode() 3、res.geturl...
其原理很简单,结构上基本不变,只是改变处理返回数据的方式. 1.Text/HTML格式 这种返回类型处理很简单,直接就当作字符串用就行...function ajaxText(url,jsonData,getMsg) { //创建Ajax对象,ActiveXObject兼容IE5,6
微信小程序中,接口类型为multipart/form-data时没有文件需要上传,Taro.uploadFile的filePath又不能为空,而微信小程序中又没有new FormData() 参考链接:...
类型描述文件逗号分隔值文本文件xls Microsoft Excel 电子表格xlsx Microsoft Excel 电子表格 (xlsx) 支持的回复格式( format=参数)类型: json jsonp(默认)现场服务API 文档用: DATA_PROXY_URL?url=...参数...
url+="&data_type=JSON"; //ClienmtID url+="&client_id="+client_id; //商品ID url+="&goods_id_list=["+GoodsId+"]"; //推广位ID url+="&p_id="+pid; // 是否生成短链接,true-是,false-否 url+...
集装箱数据导入器 容器化数据导入器(CDI)是...CDI包含提供数据类型类型的对象的CustomResourceDefinition(CRD)。 DataVolume是标准Kubernetes PVC之上的抽象,可用于自动创建和填充带有数据的PVC。 尽管您可
下载.gz文件建造URL: http://[SERVER_NAME]/api/report/v2/create_ship场地类型解释items [Number] KanColle游戏api中从api_item1到api_item5的构造项目kdockId Number Dock ID,示例:[0,3],请注意索引是基于0的...
dataType:"json",//ajax接口(请求url)返回的数据类型 success:function(data){//data:返回数据(json对象) var d = eval("("+data+")"); if(d.PARTNO == "exists"){ (PARTNO.next...