--- title: Datos URIs slug: Web/HTTP/Basics_of_HTTP/Data_URIs tags: - Base 64 - Guia(2) - Intermedio - URI - URL translation_of: Web/HTTP/Basics_of_HTTP/Data_URIs original_slug: Web/HTTP/Basics_of_HTTP/Datos_URIs ---
Datos URIs, URLs prefijados con los datos:
esquema, permiten a los creadores de contenido incorporar pequeños archivos en linea en los documentos.
Los datos URIs se componen de cuatro partes a: un prefijo (data:
), un tipo MIME que indica el tipo de datos, un token base64
opcional no textual, y los datos en si:
data:[<mediatype>][;base64],<data>
El mediatype
es una cadena de tipo MIME, por ejemplo 'image/jpeg'
para un archivo de imagen JPEG. si se omite, será por defecto text/plain;charset=US-ASCII
Si el dato es textual, solo tiene que insertar el texto (utilizando las entidades o escapes adecuados en función del tipo de documento). Por otra parte, puedes especificar base-64 para insertar datos binarios codificados en base-64.
Algunos ejemplos:
data:,Hello%2C%20World!
data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D
data:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E
<h1>Hello, World!</h1>
data:text/html,<script>alert('hi');</script>
Esto se puede hacer fácilmente desde la línea de comandos usando uuencode,
una utilidad disponible en sistemas Linux y Mac OS X:
uuencode -m infile remotename
El parámetro infile
es el nombre para el archivo que desees decodificar en formato base64, y remotename
es el nombre remoto para el archivo, que no se utilizará realmente en los datos de las URLs.
La salida será similar a esto:
xbegin-base64 664 test YSBzbGlnaHRseSBsb25nZXIgdGVzdCBmb3IgdGV2ZXIK ====
El URI de datos utilizará los datos codificados después de la cabezera inicial.
Las Web tiene APIs primitivas para codificar o decodificar en base64: codificación y decodificación Base64.
Esta sección describe los problemas que comunmente ocurren cuando se crean o se usan los datos URIs.
los
65000 caracteres. 'base64'
, se ignoran, pero no se proporciona ningún error.Las partes de datos de URIs de datos son opácos, por lo que un intento de utilizar una cadena de consulta (parametros específicos de página, con la sintaxis <url>?parameter-data
) con un URIs de datos que se acaba de incluir la cadena de consulta en los datos de la URI que representa. Por ejemplo:
data:text/html,lots of text...<p><a name%3D"bottom">bottom</a>?arg=val
Esto representa un recurso HTML cuyo contenido es:
lots of text...<p><a name="bottom">bottom</a>?arg=val
Especificación | Título |
---|---|
{{RFC("2397")}} | The "data" URL scheme" |
url()