Discussion of Blob URI Scheme for Binary Data Access | IETF

Greetings httpbis listserv!

My name is Arun Ranganathan, and I'm the current editor of the File API 
[1] specification; I'm also the outgoing Chair of the WebGL Working 
Group [2] (which brings hardware-accelerated 3D graphics to the web), 
and have a continued interest in allowing binary data to be securely 
accessed and manipulated on the web.  I'm sponsored by Mozilla.

The File API introduces the notion of a Blob object [3], which 
represents immutable binary data.  A file from the underlying file 
system can be asynchronously read as a Blob object into various data 
formats, for example.  The existing File interface in JavaScript 
inherits from Blob.

Additionally, and most significantly for this working group, the File 
API introduces a URI scheme for Blob access [4].  The URI scheme uses a 
subset of the HTTP status codes, and is designed to be used wherever 
"http" URIs can be used on the web.  The nascent URL API [5] which coins 
and revokes blob: URIs is also used with the Stream API [6] for 
video-conferencing use cases.

Browsers such as Chrome already implement blob: URIs [7]; Firefox's 
implementation will follow-suit, although is likely to be 
vendor-prefixed.  Our goals are to address the shortcomings of the 
file:/// URI scheme, which many browsers support for directory browsing 
of the underlying file system, but for little else (file:/// URIs are 
unwise choises for APIs like XMLHttpRequest, don't supply response 
codes, etc. etc.).  The blob: scheme was designed to address the use 
case of dereferencing files and binary data on the web safely, since 
data: URIs have shortcomings as well, and can't really be used for 
streams of data.

We'd welcome your feedback, including suggestions about embarking upon 
an IETF standardization track for this protocol.

-- A*

[1] File API: http://dev.w3.org/2006/webapi/FileAPI/
[2] WebGL: http://www.khronos.org/webgl/
[3] Blob defintion: http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
[4] blob: URI scheme: http://dev.w3.org/2006/webapi/FileAPI/#url
[5] URL API: http://dev.w3.org/2006/webapi/FileAPI/#creating-revoking
[6] Stream API: 
http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#stream-api
[7] Use of blob: URI scheme in demos: 
http://www.html5rocks.com/tutorials/workers/basics/#toc-inlineworkers-bloburis

Received on Thursday, 12 May 2011 20:02:59 UTC