Saltar la navegación

1.4.- Tipos MIME.

Reflexiona

¿Cómo se transmite un vídeo por Internet, con qué codificación?¿Cómo sabe un navegador que al seguir un enlace de vídeo el programa que debe utilizar para reproducirlo?

El estándar Extensiones Multipropósito de Correo de Internet o MIME (Multipurpose Internet Mail Extensions), especifica como un programa debe transferir archivos de texto, imagen, audio, vídeo o cualquier archivo que no esté codificado en US-ASCII. MIME está especificado en seis RFC (Request for Comments) :

Ilustración de un letrero con el texto Internet Access Here
Steve Rhode (CC BY-NC-ND)



¿Cómo funciona? Imagínate el siguiente ejemplo: Transferencia de una página web.

Cuando un navegador intenta abrir un archivo el estándar MIME le permite saber con que tipo de archivo está trabajando para que el programa asociado pueda abrirlo correctamente. Si el archivo no tiene un tipo MIME especificado el programa asociado puede suponer el tipo de archivo mediante la extensión del mismo, por ejemplo: un archivo con extensión .txt supone contener un archivo de texto.

Bien, pero ¿cómo lo hace?

El navegador solicita la página web y el servidor antes de transferirla confirma que la petición requerida existe y el tipo de datos que contiene. Esto último, mediante referencia al tipo MIME al que corresponde. Este diálogo, oculto al usuario, es parte de las cabeceras HTTP, protocolo que se sigue en la web.

En ese diálogo, en las cabeceras respuestas del servidor existe el campo Content-Type, donde el servidor avisa del tipo MIME de la página. Con esta información, el navegador sabe como debe presentar los datos que recibe. Por ejemplo cuando visitas http://www.debian.org/index.es.html puedes ver como respuesta en la cabecera del servidor el campo Content-Type: text/html , indicando que el contenido de la página web es tipo texto/html.

Serie de documentos en los que se detalla prácticamente todo lo relacionado con la tecnología de la que se sirve Internet: protocolos, recomendaciones, comunicaciones...

Son el lenguaje que utilizan el cliente (navegador web) y el servidor web para comunicarse entre sí. Se puede considerar cada cabecera como un mensaje aparte en el sentido de la comunicación entre el cliente y el servidor. Primero hay unas cuantas preguntas (cabeceras de solicitud), las cuales son respondidas (cabeceras de respuesta).

Cada identificador de tipo MIME consta de dos partes. La primera parte indica la categoría general a la que pertenece el archivo como, por ejemplo, "text". La segunda parte del identificador detalla el tipo de archivo específico como, por ejemplo, "html". Un identificador de tipo MIME "text/html", por ejemplo, indica que el archivo es una página web estándar.

Los tipos MIME pueden indicarse en tres lugares distintos: el servidor web, la propia página web y el navegador.

  • El servidor debe estar capacitado y habilitado para manejar diversos tipos MIME.
  • En el código de la página web se referencia tipos MIME constantemente en etiquetas link, script, object, form, meta, así por ejemplo:
  • El enlace a un archivo hoja de estilo CSS:
    <link href="./miarchivo.css" rel="stylesheet" type="text/css">
  • El enlace a un archivo código javascript:
    <script language="JavaScript" type="text/javascript" src="scripts/mijavascript.js">
  • Con las etiquetas meta podemos hacer que la página participe en el diálogo servidor-cliente, especificando datos MIME:
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  • El navegador del cliente también participa, además de estar capacitado para interpretar el concreto tipo MIME que el servidor le envía, también puede, en el diálogo previo al envío de datos, informar que tipos MIME puede aceptar la cabecera http_accept, así por ejemplo una cabecera http_accept tipo de un navegador sería: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

El valor */* significa que el navegador aceptará cualquier tipo MIME