Mi lista de blogs

jueves, 3 de febrero de 2011

Para que sirve la codificación 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 e-mail.

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 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).

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 lineas deben ser "cortas", de 100 caracteres o menos, terminando con el par de caracteres "Retorno de carro" y "Nueva linea" 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 muy largas).
Las líneas no deben tener mas 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 tal-cual.  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 como:
.... while talking to cc-server9.massey.ac.nz.:
>>> DATA
<<< 554 8BIT SMTP extension not supported
554 ... Service unavailable
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.

No hay comentarios:

Publicar un comentario