【问题标题】:Inside a <video> tag, what is the meaning of data:?在 <video> 标签内,data: 的含义是什么?
【发布时间】:2018-08-18 13:16:43
【问题描述】:

当尝试通过检查元素在 vevo 上下载视频时,我发现即使内容不受 DRM 保护也是不可能的。 video 标签是指我无法使用 ctrl+I (Firefix Dev Edition)跟踪或找到的文件,而它仍在浏览器中播放。它不是/folder/video,而是data:folder/video。这个data: 是如何工作的?

【问题讨论】:

  • 整个视频被base64编码成一个字符串/数据URI。这就是为什么您不会看到对单独视频文件的引用。它实际上不是data:folder/video。这是data:&lt;MIME-type&gt;;base64,&lt;base64 string here&gt;;

标签: html data-uri web-inspector firefox-developer-edition


【解决方案1】:

快速谷歌搜索和我们的朋友wikipedia 说:

数据 URI 方案是一种统一资源标识符 (URI) 方案,它提供了一种在网页中包含内嵌数据的方法,就好像它们是外部资源一样。它是文件文字或here 文档的一种形式。这种技术允许在单个超文本传输​​协议 (HTTP) 请求中获取通常单独的元素,例如图像和样式表,这可能比多个 HTTP 请求更有效。

语法

  • 后跟冒号 (data:) 的方案。

  • 一种可选的媒体类型。媒体类型部分可以包括一个或多个参数,格式为attribute=value,以分号分隔。常见的媒体类型参数是charset,指定媒体类型的字符集,其中值来自 IANA 字符集名称列表。如果未指定,则假定数据 URI 的媒体类型为text/plain;charset=US-ASCII

  • 一个可选的 base64 扩展 base64,与前面的部分用分号分隔。如果存在,这表示 URI 的数据内容是二进制数据,使用 Base64 方案以 ASCII 格式编码,用于二进制到文本编码。 base64 扩展不同于任何媒体类型参数,因为它没有=value 组件并且位于任何媒体类型参数之后。

  • 数据,与前面的部分用逗号分隔。数据是表示为字符的零个或多个八位字节的序列。数据 URI 中需要逗号,即使数据部分的长度为零。数据部分允许的字符包括 ASCII 大小写字母、数字以及许多 ASCII 标点符号和特殊字符。请注意,这可能包括字符,例如冒号、分号和逗号,它们是数据部分之前的 URI 组件中的分隔符。其他八位字节必须是百分比编码的。如果数据是 Base64 编码的,那么数据部分可能只包含有效的 Base64 字符。请注意,Base64 编码的 data: URI 使用标准 Base64 字符集(+/ 作为字符 62 和 63)而不是所谓的“URL-safe Base64”字符集

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 2013-01-03
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 2014-09-12
    相关资源
    最近更新 更多