首页 > 其他分享 >数据url

数据url

时间:2024-07-28 15:53:12浏览次数:8  
标签:编码 url data base64 URL text 数据

数据 URL
数据 URL,即以该方案为前缀的 URL,允许内容创建者在文档中内联嵌入小文件。它们以前被称为“数据 URI”,直到该名称被 WHATWG 停用。data:

注意:数据 URL 被现代浏览器视为唯一的不透明来源,而不是继承负责导航的设置对象的来源。

语法
数据 URL 由四个部分组成:前缀 ()、指示数据类型的 MIME 类型、可选标记(如果是非文本的)和数据本身:data:base64

data:[<mediatype>][;base64],<data>
是 MIME 类型的字符串,例如用于 JPEG 图像文件。如果省略,则默认为mediatype'image/jpeg'text/plain;charset=US-ASCII

如果数据包含在 RFC 3986 中定义为保留字符的字符,或者包含空格字符、换行符或其他非打印字符,则必须对这些字符进行百分比编码。

如果数据是文本的,则可以嵌入文本(根据封闭文档的类型使用适当的实体或转义符)。否则,您可以指定嵌入 base64 编码的二进制数据。您可以在此处和此处找到有关 MIME 类型的更多信息。base64

举几个例子:

data:,Hello%2C%20World%21
文本/纯数据 .请注意,逗号的百分比编码为 ,空格字符的 。Hello, World!%2C%20

data:text/plain;base64,SGVsbG8sIFdvcmxkIQ==
上述的 base64 编码版本

data:text/html,%3Ch1%3EHello%2C%20World%21%3C%2Fh1%3E
一个 HTML 文档,其中包含<h1>Hello, World!</h1>

data:text/html,%3Cscript%3Ealert%28%27hi%27%29%3B%3C%2Fscript%3E
带有该文档的 HTML 文档会执行 JavaScript 警报。请注意,结束脚本标记是必需的。<script>alert('hi');</script>

将数据编码为 base64 格式
Base64 是一组二进制到文本的编码方案,通过将二进制数据转换为基数 64 表示形式,以 ASCII 字符串格式表示二进制数据。通过仅包含 URL 语法允许的字符(“URL 安全”),我们可以安全地在数据 URL 中编码二进制数据。Base64 使用字符 和 ,这些字符在 URL 中可能具有特殊含义。由于数据 URL 没有 URL 路径段或查询参数,因此在此上下文中,此编码是安全的。+/

JavaScript 中的编码
Web API 具有对 base64 进行编码或解码的本机方法:Base64。

在 Unix 系统上编码
在 Linux 和 macOS 系统上,可以使用命令行(或者,作为替代方案,使用带有参数的实用程序)实现文件或字符串的 Base64 编码。base64uuencode-m

巴什
复制到剪贴板
echo -n hello|base64
# outputs to console: aGVsbG8=

echo -n hello>a.txt
base64 a.txt
# outputs to console: aGVsbG8=

base64 a.txt>b.txt
# outputs to file b.txt: aGVsbG8=
在 Microsoft Windows 上编码
在 Windows 上,PowerShell 中的 Convert.ToBase64String 可用于执行 Base64 编码:

[convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("hello"))
# outputs to console: aGVsbG8=
或者,GNU/Linux shell(例如 WSL)提供实用程序:base64

巴什
复制到剪贴板
bash$ echo -n hello | base64
# outputs to console: aGVsbG8=
常见问题
本节介绍在创建和使用URL时经常出现的问题。data

[HTML全文]
复制到剪贴板
data:text/html,lots of text…<p><a name%3D"bottom">bottom</a>?arg=val</p>
这表示一个 HTML 资源,其内容为:

[HTML全文]
复制到剪贴板
lots of text…
<p><a name="bottom">bottom</a>?arg=val</p>
语法
URL 的格式非常简单,但很容易忘记在“data”段之前添加逗号,或者错误地将数据编码为 base64 格式。data

HTML 格式化
URL 提供文件中的文件,相对于封闭文档的宽度,该文件可能非常宽。作为 URL,应为带有空格(换行符、制表符或空格)的格式可格式化,但在使用 base64 编码时会出现实际问题。datadata

长度限制
浏览器不需要支持任何特定的最大数据长度。例如,Opera 11 浏览器将 URL 长度限制为 65535 个字符,而 URL 限制为 65529 个字符(如果使用纯文本,则为 65529 个字符,而不是源的长度,未指定 MIME 类型)。Firefox 版本 97 及更新版本支持最大 32MB 的 URL(在 97 之前,限制接近 256MB)。Chromium 反对超过 512MB 的 URL,而 Webkit (Safari) 反对超过 2048MB 的 URL。datadata:data

缺乏错误处理
媒体中的无效参数或指定时的拼写错误将被忽略,但不会提供任何错误。'base64'

不支持查询字符串等。
数据 URL 的数据部分是不透明的,因此尝试将查询字符串(特定于页面的参数,带有语法)与数据 URL 一起使用时,只会在 URL 表示的数据中包含查询字符串。<url>?parameter-data

安全问题
许多安全问题(例如,网络钓鱼)与数据 URL 相关联,并在浏览器的顶层导航到它们。为了缓解此类问题,所有现代浏览器都会阻止对 URL 的顶级导航。有关更多详细信息,请参阅 Mozilla 安全团队的这篇博客文章。

标签:编码,url,data,base64,URL,text,数据
From: https://blog.csdn.net/2301_76602495/article/details/140751855

相关文章

  • 有没有办法检查是否有人提到@youtubechannelname并使用youtube数据api让Python脚本回
    标题解释了大部分内容。我的问题是,尽管到处搜索,但我没有找到任何有用的解决方案。AI和ChatGPT都无法对此提供帮助。不幸的是,YouTube数据API不提供直接监控频道提及或自动回复评论的功能。YouTube数据API主要用于检索和管理YouTube上的视频、评论和其他资源,而......
  • 【嵌入式DIY实例-ESP8266篇】- LCD ST7789显示BME280传感器数据
    LCDST7789显示BME280传感器数据文章目录LCDST7789显示BME280传感器数据1、硬件准备2、代码实现本文将介绍如何使用ESP8266NodeMCU开发板(ESP12-E模块)和BME280气压、温度和湿度传感器构建一个简单的气象站。NodeMCU微控制器(ESP8266EX)从BME280......
  • 基于Hive的大数据分析系统
    1.概述在构建大数据分析系统的过程中,我们面对着海量、多源的数据挑战,如何有效地解决这些零散数据的分析问题一直是大数据领域研究的核心关注点。大数据分析处理平台作为应对这一挑战的利器,致力于整合当前主流的各种大数据处理分析框架和工具,以实现对数据的全面挖掘和深入分析。本......
  • 如何在 Python 中从 Milesight TrafficX 摄像头、Post(MQTT、TCP/IP、HTTP) 获取数据?
    你好,祝你度过愉快的一天或一夜,我有这个MilesightTrafficX摄像头已启动并正在运行,仪表板中有一个名为POST的设置,您可以在下图中看到:我想要的是知道如何设置这些设置(基于实际上我的意思是)能够在我的Python代码中接收数据。无论协议如何,数据都将如下所示:......
  • 如何检测 Windows 应用程序 (.exe) 是否正在向外部发送数据?
    我正在使用用Python编写的Windows应用程序(.exe)来操作文件夹中的文件。我怀疑此应用程序可能在未经许可的情况下将我的文件发送到远程服务器。如何验证此应用程序是否正在建立不需要的网络连接?具体来说:有没有办法检查此应用程序是否正在连接到互联网,而无需对源......
  • 数据库实验报告
    实验名称:          单表查询           一、实验预习报告1、实验相关知识的简述:(1)指定列或全部列查询(Select)查询指定列:在SELECT子句的<目标列表达式>中指定要查询的属性列;查询全部列:在SELECT子句的<目标列表达式>中列出所有列名,或者将<目标列表......
  • 经验分享:大数据多头借贷风险对自身的不利影响?
    在现代金融体系中,大数据技术的应用使得多头借贷成为一种普遍现象。多头借贷指的是个人或企业在短时间内同时或近期内申请多笔贷款或信用产品,这种行为可能带来一系列财务和信用风险。以下是大数据多头借贷风险对个人自身可能产生的不利影响:1.信用评分下降多头借......
  • u盘文件损坏怎么恢复数据?7个u盘修复零基础教程,赶快用起来!
    近年来,越来越多的人选择U盘来存储重要数据,因为他们相信这是一个安全可靠的方式,他们可以将照片、工作文档、视频、以及生活的点点滴滴都记录在u盘中。然而,如今电脑上有很多病毒不仅可以损坏入侵我们的电脑计算机,还可以损坏我们的u盘。那如果遇到这种情况怎么办呢?毕竟这些数据对......
  • 数据结构基础的学习
    数据结构:相互之间存在一种或多种特定关系的数据元素的集合。逻辑结构:集合:所有数据在同一个集合中,关系平等。线性:数据和数据之间是一对一的关系树:一对多图:多对多物理结构(在内存当中的存储关系):顺序存储:数据存放在连续的存储单位中。逻辑关系和物理关系一致链式,数据存......
  • 数据结构的学习2
    树:n(n>=0)个结点的有限集合。n=0,空树。在任意一个非空树中,1,有且仅有一个特定的根结点2,当n>1时,其余结点可分为m个互不相交的有限集合T1,T2,T3.。。。。Tm,其中每一个集合又是一个树,并且称谓子树。结点拥有子树的个数称谓结点的度。度为0的结点称谓叶结点。度不为0,称谓......