data URL schemeLast updated on 11 November 2014.
The data URL scheme is defined by
RFC 2397,
which unfortunately is vague regarding many details of the syntax.
This document lists some of the details that should be specified in a future,
more precise specification.
See also Bug 19494 on the W3C Bugzilla and other stuff linked from there.
? separator and the query string should be part of the input
to the data URL parsing algorithm.
# separator and the fragment identifier string should
not be part of the input.
Instead, the fragment identifier has the meaning and behavior
as it would e.g. with an http URL.
data URLs.
data:text/plain;foo="bar,baz";charset=utf8,body
data:text/plain;foo=bar%2Cbaz;charset=utf8,body
How strictly should the parser look for ;base64?
Examples:
data:text/plain;base64,Rm9vCg== data:text/plain; base64,Rm9vCg== data:text/plain;base64 ,Rm9vCg== data:text/plain;base 64,Rm9vCg== data:text/plain;Base64,Rm9vCg== data:text/plain;%62ase64,Rm9vCg== data:text/plain%3Bbase64,Rm9vCg==
When RFC 2397 says:
The ";base64" extension is distinguishable from a content-type parameter by the fact that it doesn't have a following "=" sign.
Does this mean that other MIME parsing rules apply?
data:text/plain;charset=utf8,%F0%9F%92%A9 data:text/plain%3Bcharset=utf8,%F0%9F%92%A9 data:text/plain;charset%3Dutf8,%F0%9F%92%A9 data:text/plain;charset="utf8%22,%F0%9F%92%A9 data:text/plain;charset=utf8,%F0%9F%92%A9