el estándar mime - universidad politécnica de pachuca

Anuncio
UNIVERSIDAD POLITÉCNICA DE PACHUCA
EL ESTÁNDAR MIME
MIME es acrónimo de "Multipurpose Internet Mail Extensions Encoding", un
estándar utilizado en Internet con dos finalidades: de un lado, normalizar el
intercambio de todo tipo de archivos (texto, audio, vídeo, etc.) en la Red; de
otra, acabar con el problema de las transferencias de texto internacional por email.
En 1991 la IETF (Internet Engineering Task Force) comenzó a desarrollar esta
norma y desde 1994 todas las extensiones MIME están especificadas de forma
detallada en diversos documentos oficiales disponibles en Internet.
MIME está especificado en seis RFCs (acrónimo inglés de Request For
Comments) : RFC 2045, RFC 2046, RFC 2047, RFC 4288, RFC 4289 y RFC 2077.
En esencia, el camino seguido para transmitir cualquier fichero es siempre el
mismo: transformar (codificar) el fichero no ASCII en US-ASCII (haciéndolo al
mismo tiempo compatible con el estándar SMTP "Simple Mail Transport
Protocol"); transmitirlo en este formato, y reconvertirlo en destino al formato
original (decodificarlo). Aunque la descripción detallada del sistema MIME se
saldría del propósito de estos apuntes, señalaremos que su funcionamiento se
basa en:
1.- Clasificar los contenidos a transmitir según diversos tipos.
2.- Establecer que acción se toma para cada tipo de fichero que se transmite.
Es decir, que tipo de codificación debe utilizarse para cada fichero.
En sentido general las extensiones de MIME van encaminadas a soportar:
•
•
•
•
Texto en conjuntos de caracteres distintos de US-ASCII;
Adjuntos que no son de tipo texto;
Cuerpos de mensajes con múltiples partes (multi-part);
Información de encabezados con conjuntos de caracteres distintos de
ASCII.
Prácticamente todos los mensajes de correo electrónico escritos por personas
en Internet y una proporción considerable de estos mensajes generados
automáticamente son transmitidos en formato MIME a través de SMTP. Los
mensajes de correo electrónico en Internet están tan cercanamente asociados
con el SMTP y MIME que usualmente se les llama mensaje SMTP/MIME.
Para lograrlo, de entre la enorme variedad de tipos de formatos (codecs) de
ficheros utilizados, se acordó establecer unas tablas lo mas completas posibles
en las que se indique que codificación debe utilizarse para cada tipo y
subtipo. El sistema tiene la ventaja de que cuando aparece un nuevo tipo de
formato (es frecuentísimo) solo hay que actualizar en los Navegadores y
Agentes de Correo los pares de valores tipo-de-fichero/tipo-de-codec. Para
evitar una excesiva proliferación de codificadores distintos, la IANA ("Internet
MAESTRÍA EN TIC´S MFGP Página 1 UNIVERSIDAD POLITÉCNICA DE PACHUCA
Assigned Numbers Authority" www.iana.org) se encarga de establecer las
referidas tablas.
El estándar no solo ha sido integrado en los programas de correo, sino que se
ha integrado en el protocolo HTTP de la Web, de forma que los servidores Web
pueden identificar los tipos de ficheros que tienen que enviar a sus clientes. A
su vez los navegadores pueden conocer la codificación a aplicar con cada uno
de los contenidos recibidos.
Recientemente ha aparecido una variación del protocolo original denominado
S/MIME, destinado a garantizar la seguridad de las comunicaciones y basado en
el estándar de seguridad RSA Data Security. Aunque en este sentido compite
con otra tecnología, PGP ("Prety Good Privacy"). Parece que al final acabarán
coexistiendo ambas, la primera para usos empresariales y de comercio
electrónico, y la segunda para uso particular.
En lo que se refiere al correo electrónico, una de las características principales
de los sistemas de codificación MIME es que se han diseñado de forma que se
mantenga sin modificación la mayor parte posible de texto (todos los caracteres
que sean US-ASCII se transmitan sin modificación), solo son codificados
aquellos caracteres "no estándar" que puedan tener problemas en alguna parte
del sistema Internet. De esta forma, si algún agente de correo no es conforme
a MIME, el texto codificado todavía tendrá algún sentido (lo que ocurre cuando
recibimos, o nos dicen que reciben, esos caracteres extraños intercalados en
nuestros correos).
Sistemas de codificación
Los sistemas MIME de codificar (encode) no ASCII en US-ASCII son los
siguientes:
•
7bit. El utilizado por defecto. Significa que el fichero es solo texto
ASCII. Las líneas deben ser "cortas", de 100 caracteres o menos,
terminando con el par de caracteres "Retorno de carro" y "Nueva línea"
CR-LF "Carriage Return - Line Feed" (un arcaísmo de cuando se
utilizaban Teletipos).
•
Quoted-printable. Utilizado por texto que es mayoritariamente US-ASCII
(7 bit) pero con un pequeño porcentaje de caracteres "extraños" (8 bit).
Este es el caso típico del Español Castellano (ISO-8859-1) y otros
idiomas occidentales, cuyos juegos de caracteres caen dentro de la
categoría ISO-8859-n. En esta codificación, cada carácter de 8-bits es
codificado en tres caracteres de 7 bits, el primero el signo igual (=) y el
valor hexadecimal del carácter. Por ejemplo, el controvertido carácter
"ñ", "F1" en hexadecimal y 11110001 en binario, se codifica como
"=F1". El propio carácter "=" debe ser codificado (=3D) así como el
espacio y la tabulación, que son codificados en =20 y =09
respectivamente. Si una línea termina con "=" seguido del par CR-LF,
estos últimos caracteres son ignorados (lo que permite camuflar líneas
MAESTRÍA EN TIC´S MFGP Página 2 UNIVERSIDAD POLITÉCNICA DE PACHUCA
muy largas). Las líneas no deben tener más de 76 caracteres (sin contar
los pares CR-LF finales), las más largas pueden ser fragmentadas en el
proceso de codificación pero vuelven a unirse en el de decodificación.
•
Base64. Se utiliza para contenidos que no han de ser leídos por
personas o que, por cualquier otra causa, deben ser mantenidos talcual. Cada 3 octetos (24 bits) se codifican en una secuencia de 4
caracteres escogidos de entre un grupo de 64 cuidadosamente
seleccionados de entre los US-ASCII que se sabe que tienen menos
problemas en las transmisiones.
•
8bit. Se utiliza cuando se trata de transmitir ficheros con caracteres de 8
bits con líneas "cortas" que terminan en CR-LF. No es muy usual porque
los caracteres de 8 bits no pueden ser enviados con seguridad mediante
el estándar SMTP. Es recomendable no usar transferencias codificadas
en 8bit, pues se puede encontrar problemas a la hora de atravesar otras
estafetas de correo en Internet y obtener errores. Sin embargo, el nuevo
ESMTP (RFC1651) y la extensión RFC1652 pueden manejar mensajes de
este tipo.
•
binary. Como el anterior pero sin las terminaciones CR-LF.
La importancia de los MIME Types
En el uso diario de internet estamos beneficiándonos (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 son las cabeceras HTTP mandadas por la página de inicio de
ignside.net:
HTTP/1.0 200 OK
Date: Thu, 24 Jul 2003 21:20:18 GMT
Server: Apache/1.3.26 (Unix) Debian 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 líneas se
refieren a la identidad del server y a una cookie. A continuación en negrita el
MAESTRÍA EN TIC´S MFGP Página 3 UNIVERSIDAD POLITÉCNICA DE PACHUCA
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 (e indicar al navegador el tipo de datos que envía); en la
propia página web, y en el navegador del usuario
•
•
•
El servidor debe estar capacitado para manejar diversos mime types, y
estar además 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 automáticamente 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:
<link rel="stylesheet" href="mi_hoja_de_estilo.css" type="text/css">
<script language="JavaScript" type="text/javascript"
src="scripts/mijavascript.js">
El tipo MIME puede especificarse como atributo en otras etiquetas HTML,
como object o form (atributo enctype).
Y por supuesto, con las etiquetas<meta HTTP-EQUIV:... podemos hacer
que la página participe en el diálogo server-cliente, especificando datos
MIME
Por ultimo el navegador del cliente también participa; no solamente ha
de estar capacitado para interpretar el concreto MIME type que el server
le envía, también puede, en el dialogo previo al envió de datos, informar
que MIME types puede aceptar: la cabecera http_accept
LISTA DE TIPOS DE MIME
En la siguiente liga encontrará una lista de los tipos de MIME.
http://www.htmlquick.com/es/reference/mime-types.html
MAESTRÍA EN TIC´S MFGP Página 4 
Descargar