“blob:http://”前缀是什么?在哪里可以了解更多有关此前缀的信息?

“blob:http://”前缀是什么?在哪里可以了解更多有关此前缀的信息?

我正在使用 Safari,不确定这是否适用于其他浏览器,但当我注册 Storm Path 帐户时,我看到以下 URL

blob:https://api.stormpath.com/1be95204-93d6-4GUID HERE

blob: 前缀对我来说是新的,我想知道它是否适用于所有浏览器,以及可能存在哪些其他前缀。

答案1

Blob URI/URL 由 JavaScript 创建,指的是浏览器当前内存中的数据(仅在当前页面中),而不是指主机上存在的数据。

有关更多使用信息,请参阅: https://www.npmjs.com/package/blob-util

答案2

URL 开头到第一个冒号的部分称为“URI 方案”(或“URL 方案”)。在 Google 上搜索时blob URI scheme会显示W3C 的文件 API 工作

大多数 URI 方案没有包含整个其他 URI 的标准规定,因此您不会认为它们是另一个整个 URI 的前缀。除了 http: 和 https: 之外,一些常见的 URI 方案包括:

  • FTP:
  • 邮箱:
  • 数据:
  • 脚本:
  • smb: (和 cifs: )
  • 法新社:

…还有更多。我肯定没有提到大家最喜欢的。:)

答案3

我复制并粘贴了堆栈溢出因为 URL 字符串中存在有关 blob 的背景信息。

由 JavaScript 创建的 URLBlob不能转换为“普通”URL。

blob:URL 不是指服务器上存在的数据,而是指浏览器当前内存中针对当前页面的数据。它不会在其他页面上可用,不会在其他浏览器中可用,也不会在其他计算机上可用。

因此,一般来说,将 Blob URL 转换为“普通”URL 是没有意义的。如果您想要一个普通 URL,则必须将数据从浏览器发送到服务器,然后让服务器将其像普通文件一样提供。

可以将 blob: URL 转换为 data: URL,至少在 Chrome 中是这样的。您可以使用 AJAX 请求从 blob: URL“获取”数据(即使它实际上只是从浏览器内存中提取数据,而不是发出 HTTP 请求)。

答案4

MDN 是一个很好的资源,可以用通俗易懂的语言来理解事物。我还建议https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL作为一个很好的资源。他们还在页面底部显示了 W3C 规范,与 Spiff 提供的相同,但原始规范可能冗长且难以阅读。我认为 Spiff 最适合将您链接到 W3C 文档。

我认为 Masoud 提供的 npmjs 链接没什么用。它将您引导到库主机 npmjs 上的 Javascript 库。blob-util 库用于包装浏览器中的标准 API 以处理 blob,它简化了这些代码的编写,但它并不是理解 blob URL 及其含义的良好参考。

相关内容