Qual é o prefixo "blob: http: //" e onde posso aprender mais sobre isso?

35

Estou usando o safari e não tenho certeza se isso funciona em outros navegadores, mas quando me inscrevi em uma conta de caminho de tempestade, vejo o seguinte URL

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

O blob: prefix é novo para mim e quero saber se funciona em todos os navegadores e quais outros prefixos podem existir.

goodguys_activate
fonte
2
Há uma boa explicação no SO
Bakudan

Respostas:

17

O URI / URL do blob foi criado por JavaScript, refere-se aos dados que seu navegador possui atualmente na memória (apenas na página atual) e não refere-se aos dados existentes no host.

Para obter mais informações, consulte: https://www.npmjs.com/package/blob-util

Masoud
fonte
8

O início de um URL até o primeiro dois pontos é chamado de "esquema de URI" (ou "esquema de URL"). A pesquisa no Google blob URI schemerevela os esforços da API de arquivos do W3C .

A maioria dos esquemas de URI não possui disposições padrão para conter um outro URI, portanto, você não pensaria neles como prefixando outro URI inteiro. Além de http: e https:, alguns esquemas comuns de URI incluem:

  • ftp:
  • mailto:
  • dados:
  • roteiro:
  • smb: (e cifs:)
  • afp:

…e muitos mais. Tenho certeza de que estou deixando de fora os favoritos de todos. :)

Spiff
fonte
7

Copio e colo a resposta do StackOverflow por causa das informações em segundo plano sobre o blob na string da URL.

Um URL que foi criado a partir de um JavaScript Blobnão pode ser convertido em um URL "normal".

R blob: O URL não se refere aos dados existentes no servidor, mas aos dados que o navegador possui atualmente na memória, para a página atual. Não estará disponível em outras páginas, não estará disponível em outros navegadores e não estará disponível em outros computadores.

Portanto, não faz sentido, em geral, converter um URL de Blob em um URL "normal". Se você quisesse um URL comum, teria que enviar os dados do navegador para um servidor e fazer com que o servidor os disponibilizasse como um arquivo comum.

É possível converter um blob: URL em data: URL, pelo menos no Chrome. Você pode usar uma solicitação AJAX para "buscar" os dados do blob: URL (mesmo que seja apenas retirá-los da memória do navegador, não fazendo uma solicitação HTTP).

Ivanov
fonte
0

MDN é um bom recurso para entender as coisas em linguagem simples. Eu também sugeriria https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL como um bom recurso. Eles também mostram a especificação W3C na parte inferior da página, a mesma fornecida pelo Spiff, mas as especificações originais podem ser detalhadas e difíceis de ler. Eu diria que o Spiff é o mais correto para vincular você aos documentos do W3C.

Não acho que o link para o npmjs fornecido pela Masoud seja muito útil. Ele o direciona para uma biblioteca Javascript no host da biblioteca npmjs. A biblioteca blob-util é usada para envolver a API padrão no navegador para trabalhar com blobs e simplificou a criação de código para essas coisas, mas não é uma boa referência para entender os URLs dos blobs e o que eles são.

adjenks
fonte