`
sangeshitou
  • 浏览: 27102 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

url data 模式(url scheme data)

阅读更多

首先来看一段代码

 <IMG
   SRC="data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAw
   AAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFz
   ByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSp
   a/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJl
   ZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uis
   F81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PH
   hhx4dbgYKAAA7"
   ALT="Larry">

 有兴趣的朋友可以写个HTML,然后把这段代码拷进去。

用浏览器打开这个html,你会发现有一个人头,然而用HTTP WATCH看一下,你会发现并没有任何HTTP请求。

 

这是为什么?

 

仔细看下这个img标签中src属性的内容,会发现这个url的模式是data。这样我们就发现了一个不常用的模式,那么这个模式到底有什么用呢?(原文请看

他的作用是将一些小的内容用文本的格式放到页面上,从而减少http请求。至于这个小的定义是什么?

先看原文如下:

 写道
The "data:" URL scheme is only useful for short values. Note that
some applications that use URLs may impose a length limit; for
example, URLs embedded within <A> anchors in HTML have a length limit
determined by the SGML declaration for HTML [RFC1866].

 从这段定义可以看出这个文本的内容不能超过url的最大长度限制。

 

 

这个data模式的定义如下:

       dataurl    := "data:" [ mediatype ] [ ";base64" ] "," data
       mediatype  := [ type "/" subtype ] *( ";" parameter )
       data       := *urlchar
       parameter  := attribute "=" value

 

另附 base64的解释

 

但是我做了一个实验:

<script type="text/javscript" src="data:application/x-javascript;base64,YWxlcnQoJ2hlbGxvJyk7" ></script>

 其中 YWxlcnQoJ2hlbGxvJyk7 是 alert('hello'); 的base64 编码。

 

但是浏览器能成功解析他的内容,但是不执行这段代码。

 

分享到:
评论

相关推荐

    python 获取url中的参数列表实例

    Python的urlparse有对...result = urlparse.urlparse(urldata) print result print urlparse.parse_qs(result.query) 输出: ParseResult(scheme='http', netloc='en.wikipedia.org', path='/w/api.php', params='',

    Data URI scheme详解和使用实例及图片base64编码实现方法

    一、 Data URI scheme 简介 Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并...

    点击浏览器中的URL链接,启动特定的App。

    点击浏览器中的URL链接,启动特定的App。 ...[scheme]://[host]/[path]?[query]"&gt;启动应用程序 ... &lt;data android:scheme="myapp" android:host="jp.app" android:pathPrefix="/openwith"/&gt; &lt;/intent-filter&gt;

    php使用socket post数据到其它web服务器的方法

    分享给大家供大家参考。具体实现方法如下: function post_request($url, $data, $referer='') { // Convert the data array into URL Parameters like a=b&foo=bar etc. ... if ($url['scheme'] != 'http') {

    php中用socket模拟http中post或者get提交数据的示例代码

     $url[‘scheme’] || $url[‘scheme’] = ‘http’; $url[‘host’] || $url[‘host’] = $_SERVER[‘HTTP_HOST’]; $url[‘path’][0] != ‘/’ && $url[‘path’] = ‘/’.$url[‘path’];  $query = $data;...

    互联网应用的技术架构.pdf

    移动互联网应用的架构方法 •整体架构 •使⽤WebView •使⽤URL Scheme •Data Center •⺴络加载与缓存运⽤

    cef-pdf:cef-pdf HTML到PDF实用程序

    cef-pdf cef-pdf是用于从HTML内容创建PDF文档的命令行实用程序... --url=&lt;url&gt; URL to load, may be http, file, data, anything supported by Chromium. --file=&lt;path&gt; File path to load using file:// scheme. May

    CC开放平台服务CCOpenServiceLite.zip

    }3 参考各个平台关于URL scheme的配置指南.例如微信: 4 iOS9 设备需要添加白名单,参考iOS9白名单接口使用说明 服务类型目前支持CCOpenServiceNameWeiXin,CCOpenServiceNameQQ,CCOpenServiceNameWeiBo第三方登录接口...

    基于ASP.NET Core的可伸缩、通用的文件服务器

    var url = updResult.Data.Url; //得到文件根地址 URL格式说明 完整URL格式是这样的:https://domain.com/{fileToken}/{handler}/{modifier} fileToken:是本次上传文件的唯一标识符 handler:文件处理器,可以是...

    fbmessengerexport:导出访问您的Messenger Messenger聊天消息

    警告:此脚本正在使用的与Facebook API(fbchat)进行通信的库目前尚未维护,因此您可能会遇到登录问题(或无法登录)。 有关更多信息,请参见和其他问题。 将您的个人Facebook聊天/信使数据导出到sqlite数据库中。...

    vue移动端使用appClound拉起支付宝支付的实现方法

    &lt;param name=urlScheme value=AliPayA000000000&gt; 2-在自己的应用中添加支付宝支付的模块 3.使用支付宝模块进行拉起支付宝 if (res.data.code == 200) { // 拉起支付宝 //开发者通过 payOrder 方法来进行...

    hls.min.js

    t._decodeURLFrame(e):void 0},t._readTimeStamp=function(t){if(8===t.data.byteLength){var e=new Uint8Array(t.data),r=1&e[3],i=(e[4])+(e[5])+(e[6])+e[7];return i/=45,r&&(i+=47721858.84),Math.round(i)}},t...

    plus1-android-sdk:WapStart Plus1 Android SDK

    清单配置第一步是添加自定义 url-scheme 和主机。 同步用户的 cookie 后,为了能够从浏览器返回到应用程序,这是必要的操作。 如果您使用的是setDisabledOpenLinkAction(true) ,您可以跳过本节(不推荐)。 例子: ...

    白帽子讲浏览器安全.钱文祥(带详细书签).pdf

    6.3.1 Android一例漏洞:使用Intent URL Scheme绕过Chrome SOP 144 6.3.2 iOS的一例漏洞:自动拨号泄露隐私 146 6.3.3 Windows Phone一例未修补漏洞:利用Cortana显示IE中已保存密码 147 6.4 本章小结 149 第2篇...

    Dicoth论坛社区系统 v1.0

    source ./data/mysql/scheme.sql 编辑配置 您需要为项目编辑配置项,http端口,数据库信息以及更多项目文件: vim config / application.conf后台管理 Url: http://127.0.0.1/admin/ Administrator: admin@...

    Dicoth论坛社区系统-其他

    source ./data/mysql/scheme.sql 编辑配置 您需要为项目编辑配置项,http端口,数据库信息以及更多项目文件: vim config / application.conf 后台管理 Url: http://127.0.0.1/admin/ Administrator: admin@putao....

    datablase:SIBR统计API

    数据融合 SIBR统计信息API。 贡献 请随时打开PR,为该项目添加新的...DATABASE_URL="postgresql://username:password@localhost:5432/database?schema=data" 安装 cd datablase进入项目根目录 yarn来安装网站的依赖 n

    json-schema-editor:JSON数据可视化JSONSchema, 主要用于json结构格式的可视化编辑

    技术栈:React/Mobx/Ant Design特点:支持12种基础类型组件(input、boolean、 date、date-time、 time、 url、textarea、number、color、radio、 select、single-select)支持11个特殊类型组件(object、array、...

    servlet2.4doc

    Encodes the specified URL for use in the sendRedirect method or, if encoding is not needed, returns the URL unchanged. encodeUrl(String) - Method in class javax.servlet....

    SIP - Understanding the Session Initiation Protocol, 2nd Ed - 1459

    4.2 URI and URL Schemes Used by SIP 98 4.2.1 SIP and SIPS URIs 98 4.2.2 Telephone URLs 100 4.2.3 Presence and Instant Messaging URLs 101 4.3 Tags 102 4.4 Message Bodies 102 References 104 5 SIP ...

Global site tag (gtag.js) - Google Analytics