Esquema de URI de datos
# Esquema de URI de datos

El esquema data: URI definido en las normas IETF RFC 2397 en un esquema URI que permite la inclusión de pequeños elementos de datos en línea, como si fueran referenciados hacia una fuente externa. Suelen ser mucho más simples que otros métodos de inclusión alternativos, como MIME con cid: o mid:. De acuerdo a la denominación en el RFC, los data: URI son, de hecho, URL.

Los URIs data: están soportados actualmente por:

* Gecko y sus derivados, como Firefox
* Opera
* KHTML y sus derivados, Safari, Konqueror, Google Chrome

Microsoft Internet Explorer, en su versión 7, no soporta los data: URIs como fuentes HTML, por lo que algo como about:<b>bold</b> en esas versiones es aproximadamente equivalente a data:text/html,<b>bold</b> en navegadores que soportan los data: URIs

## Ventajas

* Las cabeceras HTTP no son requeridas para los datos empotrados, por lo que <language = en><descrption>data:</descrption> URIs pueden usar menos recursos de la red que la sobrecarga de la codificación del contenido en línea ya que un data: URI es más pequeño que las cabeceras HTTP que de otro modo serían necesarias.
* Los navegadores están típicamente configurados para usar un máximo de cuatro conexiones simultáneas a un servidor, por lo que los datos en línea liberan una conexión de descarga para otros contenidos.
* Los navegadores gestionan menos entradas de caché para un fichero que contiene data: URIs.
* Los entornos con un acceso limitado o restringido a los recursos externos pueden empotrar contenido cuando no se permite o no es práctico hacer referencias externas. Por ejemplo, un campo avanzado de edición de HTML podría aceptar una imagen pegada o insertada y convertirla en un data: URI para ocultar la complejidad de las fuentes externas al usuario.

## Desventajas

* El contenido empotrado debe ser extraído y decodificado antes de realizarse cambios, y después debe ser recodificado y reempotrado.
* Los data: URIs codificados en Base64 son aproximadamente un 33% más grandes que sus equivalentes binarias.
* Las URL codificadas como data: URIs pueden ser hasta un 200% más grandes (en casos extremos) que el contenido del texto original.
* La información que es empotrada más de una vez es descargada para cada referencia como parte del fichero contenedor, y por lo tanto no se beneficia del caché del navegador.
* La capacidad máxima del navegador en la longitud del URI limita el tamaño máximo de los datos. Por ejemplo, los URIs en Opera suelen tener un límite de 4KB.
* Los datos son incluidos como flujos simples, y muchos entornos de procesamiento (como los navegadores web) pueden no soportar dichos contenedores (como multipart/alternative o message/rfc822) para proveer una complejidad mayor como metadatos, compresión de datos o negociación de contenidos.

## Ejemplos

### CSS

Una regla CSS que incluye una imagen de fondo (de nuevo, se añaden retornos de carro por claridad):

### JavaScript

Una sentencia JavaScript que abre una subventana empotrada, como un enlace de pie de página:

