MIME types

¿que son los MIME TYPES?

MIME es un acrónimo de extensiones multipropósito de correo de internet (Multipurpose Internet Mail Extensions)

Se trata de un standard que especifica como debe un programa (inicialmente un programa de correo o un navegador web) trasferir archivos multimedia (video, sonido, por extensión cualquier archivo que no esté codificado en US-ASCII). Con anterioridad al desarrollo de las extensiones MIME, cualquier archivo que no se limitase a texto ascii debía ser codificado a estos caracteres (uuencode uudecode).

MIME adjunta un archivo de cabecera a cada archivo, especificando el tipo y el subtipo del contenido del archivo principal. Gracias a esta información tanto el servidor como el navegador pueden manejar y presentar correctamente los datos.


La importancia de los MIME TYPES

En el uso diario de internet estamos beneficiandonos (y a veces sufriendo) los MIME TYPES. Cada vez que solicitamos una página de internet se abre un diálogo entre nuestro navegador y el server. Nuestro navegador pide la página. El servidor, antes de enviarla, nos confirma que ese recurso 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.

Por ejemplo, estas cabeceras HTTP mandadas por una página de inicio:

HTTP/1.0 200 OK
Date: Thu, 24 Jul 2003 21:20:18 GMT
Server: Apache/1.3.26 (Unix) Fedoracore2 GNU/Linux mod_gzip/1.3.19.1a PHP/4.2.3 v2h/1.5.1
X-Powered-By: PHP/4.2.3
Set-Cookie: lang=spanish; expires=Fri, 23-Jul-04 21:20:18 GMT
Content-Type: text/html
Age: 1

La primera línea especifica que está en uso el protocolo HTTP 1.0, y que la respuesta del servidor a la página solicitada es correcta. Las siguientes lineas se refieren a la identidad del server y a una cookie. A continuación en negrita el server avisa del tipo mime de la página: text/html. Con esta información, el navegador sabe como debe presentar los datos que recibe.

En la edición web la indicación de los MIME TYPES puede o debe hacerse en tres lugares diferentes: en el propio servidor, que debe ser capaz de manejar el tipo MIME concreto (y indicar al navegador el tipo de datos que envia); en la propia página web, y en el navegador del usuario
El servidor debe estar capacitado para manejar diversos mime types, y estar ademas habilitado para ello. Por ejemplo en un servidor Apache podemos especificar el tipo MIME por defecto para aquellos archivos que el server no pueda identificar automaticamente como pertenecientes a un tipo concreto:
DefaultType text/plain
El autor de la página web referencia tipos MIME constantemente: El link a un archivo externo (una hoja de estilo, un script javascript) puede (recomendado) especificar el tipo: