Was ist das Präfix "blob: http: //" und wo kann ich mehr darüber erfahren?

35

Ich verwende Safari und bin mir nicht sicher, ob dies in anderen Browsern funktioniert. Wenn ich mich jedoch für ein Storm Path-Konto anmelde, wird die folgende URL angezeigt

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

Das Präfix blob: ist für mich neu und ich möchte wissen, ob es in allen Browsern funktioniert und welche anderen Präfixe möglicherweise existieren.

goodguys_activate
quelle
2
Es gibt eine gute Erklärung bei SO
Bakudan

Antworten:

17

Blob-URI / -URL wurde von JavaScript erstellt, verweist auf Daten, die Ihr Browser derzeit im Speicher hat (nur auf der aktuellen Seite), und verweist nicht auf Daten, die auf dem Host vorhanden sind.

Weitere Informationen finden Sie unter: https://www.npmjs.com/package/blob-util

Masoud
quelle
8

Der Anfang einer URL bis zum ersten Doppelpunkt wird als "URI-Schema" (oder "URL-Schema") bezeichnet. Wenn Sie nach googeln blob URI scheme, werden die Bemühungen des W3C um die Datei-API deutlich .

Die meisten URI-Schemata enthalten keine Standardbestimmungen für die Aufnahme einer ganzen anderen URI. Sie würden sie also nicht als Präfix einer anderen ganzen URI betrachten. Neben http: und https: umfassen einige gängige URI-Schemata:

  • ftp:
  • mailto:
  • Daten:
  • Skript:
  • smb: (und cifs:)
  • afp:

…und viele mehr. Ich bin sicher, ich lasse alle Favoriten aus. :)

Spiff
quelle
7

Ich kopiere die Antwort von StackOverflow und füge sie ein, weil Hintergrundinformationen zu Blobs in der URL-Zeichenfolge vorliegen.

Eine URL, die aus einem JavaScript erstellt wurde, Blobkann nicht in eine "normale" URL konvertiert werden.

EIN blob : URL verweist nicht auf Daten, die auf dem Server vorhanden sind, sondern auf Daten, die Ihr Browser derzeit für die aktuelle Seite gespeichert hat. Es wird nicht auf anderen Seiten verfügbar sein, es wird nicht in anderen Browsern verfügbar sein und es wird nicht von anderen Computern verfügbar sein.

Daher ist es im Allgemeinen nicht sinnvoll, eine Blob-URL in eine "normale" URL zu konvertieren. Wenn Sie eine normale URL benötigen, müssen Sie die Daten vom Browser an einen Server senden und vom Server wie eine normale Datei zur Verfügung stellen lassen.

Es ist möglich, eine blob: URL in eine data: URL umzuwandeln, zumindest in Chrome. Sie können eine AJAX-Anfrage verwenden, um die Daten aus der blob: -URL abzurufen (auch wenn sie nur aus dem Speicher Ihres Browsers abgerufen werden und keine HTTP-Anfrage gestellt wird).

Ivanov
quelle
0

MDN ist eine gute Ressource, um Dinge in einfacher Sprache zu verstehen. Ich würde auch https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL als eine gute Ressource vorschlagen . Sie zeigen auch die W3C-Spezifikation am Ende ihrer Seite, die gleiche wie die von Spiff, aber die Originalspezifikationen können ausführlich und schwer zu lesen sein. Ich würde sagen, Spiff ist das Richtigste, um Sie mit den W3C-Dokumenten zu verknüpfen.

Ich denke nicht, dass der von Masoud bereitgestellte Link zu npmjs sehr nützlich ist. Es leitet Sie zu einer Javascript-Bibliothek auf dem Bibliotheks-Host npmjs. Die blob-util-Bibliothek wird verwendet, um die Standard-API im Browser zu umgehen, um mit Blobs zu arbeiten, und vereinfacht das Schreiben von Code für diese Dinge. Es ist jedoch keine gute Referenz, um die Blob-URLs und deren Bedeutung zu verstehen.

adjenks
quelle