当前位置: 首页 > news >正文

数据url

数据 URL
数据 URL,即以该方案为前缀的 URL,允许内容创建者在文档中内联嵌入小文件。它们以前被称为“数据 URI”,直到该名称被 WHATWG 停用。data:注意:数据 URL 被现代浏览器视为唯一的不透明来源,而不是继承负责导航的设置对象的来源。语法
数据 URL 由四个部分组成:前缀 ()、指示数据类型的 MIME 类型、可选标记(如果是非文本的)和数据本身:data:base64data:[<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%20data: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 格式。dataHTML 格式化
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 安全团队的这篇博客文章。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++中 cin、cin.get()、cin.getline()、getline() 的区别
  • Blender材质-PBR与纹理材质
  • scratch聊天机器人 2024年6月scratch四级 中国电子学会图形化编程 少儿编程等级考试四级真题和答案解析
  • sql server 连接报错error 40
  • 基于内容的音乐推荐网站/基于ssm的音乐推荐系统/基于协同过滤推荐的音乐网站/基于vue的音乐平台
  • 基于Element UI内置的Select下拉和Tree树形组件,组合封装的树状下拉选择器
  • 这一文,关于 Java 泛型的点点滴滴 一(泛型基础、类型擦除)
  • Javascript面试基础6【每日更新10】
  • MyBatis中的赋值语句:#{}和${}的区别差异(常见面试题)
  • 【Python机器学习】决策树的构造——划分数据集
  • 2024最新Uniapp的H5网页版添加谷歌授权验证
  • linux进程——解析命令行参数——环境变量详解
  • Spring Security面试三道题
  • 查找算法-二分查找(折半查找)
  • 《Unity3D高级编程 主程手记》第四章 用户界面(二) UGUI 系统的原理及其组件使用
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 2019.2.20 c++ 知识梳理
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Angular 响应式表单 基础例子
  • download使用浅析
  • JavaScript中的对象个人分享
  • Java超时控制的实现
  • JSDuck 与 AngularJS 融合技巧
  • k8s 面向应用开发者的基础命令
  • Laravel5.4 Queues队列学习
  • MD5加密原理解析及OC版原理实现
  • Python进阶细节
  • React-Native - 收藏集 - 掘金
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Vultr 教程目录
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 判断客户端类型,Android,iOS,PC
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 用jquery写贪吃蛇
  • 我们雇佣了一只大猴子...
  • ​MySQL主从复制一致性检测
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #APPINVENTOR学习记录
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (1)SpringCloud 整合Python
  • (1)常见O(n^2)排序算法解析
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (poj1.3.2)1791(构造法模拟)
  • (待修改)PyG安装步骤
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (计算机网络)物理层
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (三)elasticsearch 源码之启动流程分析
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (一)使用Mybatis实现在student数据库中插入一个学生信息