Un tipo de medio (anteriormente conocido como tipo MIME ) [1] es un identificador de dos partes para formatos de archivos y contenidos de formato transmitidos en Internet . Su propósito es algo similar al de las extensiones de archivo en el sentido de que identifican el formato de datos deseado. La Autoridad de Números Asignados en Internet (IANA) es la autoridad oficial para la estandarización y publicación de estas clasificaciones. Los tipos de medios se definieron originalmente en la Solicitud de comentarios RFC 2045 (MIME), primera parte: Formato de los cuerpos de los mensajes de Internet (noviembre de 1996) en noviembre de 1996 como parte de la especificación MIME (Extensiones multipropósito de correo de Internet) , para indicar el tipo de contenido del mensaje de correo electrónico . y archivos adjuntos; [2] de ahí el nombre original, tipo MIME . Otros protocolos de Internet, como HTTP [3] , y formatos de archivos de documentos como HTML , [4] también utilizan tipos de medios para fines similares.
Un tipo de medio consta de un tipo y un subtipo , que además se estructura en un árbol . Un tipo de medio puede, opcionalmente, definir un sufijo y parámetros :
tipo-mime = tipo "/" [ árbol "." ] subtipo [ "+" sufijo ] * [ ";" parámetro ];
Por ejemplo, un archivo HTML podría denominarse text/html; charset=UTF-8
. En este ejemplo, text
es el tipo, html
es el subtipo y charset=UTF-8
es un parámetro opcional que indica la codificación de caracteres.
Los tipos, subtipos y nombres de parámetros no distinguen entre mayúsculas y minúsculas. Los valores de los parámetros suelen distinguir entre mayúsculas y minúsculas, pero pueden interpretarse sin distinguir entre mayúsculas y minúsculas según el uso previsto. [2]
La parte "tipo" define el uso amplio del tipo de medio. A noviembre de 1996, los tipos registrados eran: application
, audio
, image
, message
, multipart
, text
y video
. [2] A diciembre de 2020, los tipos registrados incluían los anteriores, más font
, example
y model
. [1]
Un tipo de nivel superior no oficial de uso común es chemical
. [5] [6] [7]
Un subtipo normalmente consta de un formato de medios, pero puede o debe contener también otro contenido, como un prefijo de árbol, productor, producto o sufijo, de acuerdo con las diferentes reglas de los árboles de registro.
Todos los tipos de medios deben registrarse utilizando los procedimientos de registro de la IANA. Para lograr eficiencia y flexibilidad en el proceso de registro de tipos de medios, se pueden registrar diferentes estructuras de subtipos en árboles de registro que se distinguen por el uso de prefijos de árbol. Actualmente se crean los siguientes árboles: estándar (sin prefijo), proveedor ( vnd.
prefijo), personal o vanidad ( prs.
prefijo), no registrado ( x.
prefijo). Estos árboles de registro se definieron por primera vez en noviembre de 1996 (RFC 2048 obsoleto, actualmente RFC 6838). IETF Standards Action puede crear nuevos árboles de registro para el registro externo y la gestión por parte de organizaciones permanentes reconocidas (por ejemplo, sociedades científicas).
El árbol de estándares no utiliza ningún prefijo de árbol. Ejemplos son text/javascript
, image/png
. [8]
Los registros en el árbol de estándares deben estar asociados con especificaciones del IETF aprobadas directamente por el IESG o registrados por una organización relacionada con estándares reconocida por la IANA.
El árbol de proveedores incluye tipos de medios asociados con productos disponibles públicamente. Utiliza el vnd.
prefijo de árbol. Ejemplos son: application/vnd.ms-excel
, application/vnd.oasis.opendocument.text
.
Los términos "vendedor" y "productor" se consideran equivalentes en el contexto. Los consorcios industriales y las entidades no comerciales pueden registrar tipos de medios en el árbol de proveedores. Cualquier persona que necesite intercambiar archivos asociados con algún producto de software o conjunto de productos puede crear un registro en el árbol de proveedores. Sin embargo, el registro pertenece al proveedor u organización que produce el software que emplea el tipo que se está registrando, y ese proveedor u organización puede optar en cualquier momento por hacer valer la propiedad de un registro realizado por un tercero.
El árbol personal o personalizado incluye tipos de medios asociados con productos que no están disponibles públicamente o tipos de medios experimentales. Utiliza el prs.
prefijo de árbol. Ejemplos son audio/prs.sid
, image/prs.btif
.
El árbol no registrado incluye tipos de medios destinados exclusivamente a su uso en entornos privados y sólo con el acuerdo activo de las partes que los intercambian. Utiliza el x.
prefijo de árbol. Ejemplos son application/x.foo
, video/x.bar
. Los tipos de medios en este árbol no se pueden registrar.
Este tipo se definió originalmente en RFC 1590 (publicado en septiembre de 1993) utilizando el prefijo x-
o X-
. RFC 2048 (publicado en noviembre de 1996) introdujo el x.
prefijo, pero desalentó el uso del árbol no registrado, ya que ahora están disponibles nuevos árboles personales y de proveedores con requisitos de registro relajados. El RFC 6838 actual (publicado en enero de 2013) mantiene la misma recomendación, pero los subtipos con el prefijo x-
o X-
ya no se consideran miembros de este árbol.
Los tipos de medios que se han implementado ampliamente (con un subtipo con el prefijo x-
o X-
) sin estar registrados deben volver a registrarse, si es posible, con un subtipo con el prefijo adecuado. Si esto no es posible, el tipo de medio puede, después de la aprobación tanto del revisor de tipos de medios como del IESG, registrarse en el árbol de estándares con su subtipo sin prefijo. application/x-www-form-urlencoded
es un ejemplo de un tipo ampliamente implementado que terminó registrado con el x-
prefijo. [9]
El sufijo es un aumento de la definición del tipo de medio para especificar adicionalmente la estructura subyacente de ese tipo de medio, lo que permite un procesamiento genérico basado en esa estructura e independiente de la semántica particular del tipo exacto. Los tipos de medios que utilizan una sintaxis estructurada con nombre deben utilizar la IANA apropiada registrada "+"suffix
para esa sintaxis estructurada cuando se registran. No se deben utilizar sufijos no registrados (desde enero de 2013). Los procedimientos de registro de sufijos de sintaxis estructurada se definen en RFC 6838. [8]
El +xml
sufijo se ha definido desde enero de 2001 (RFC 3023 [ 10] ) y se incluyó formalmente en el contenido inicial del Registro de sufijos de sintaxis estructurada junto con ,,, +json
y en enero de 2013 (RFC 6839). Las adiciones posteriores incluyen , , y . [11]+ber
+der
+fastinfoset
+wbxml
+zip
+gzip
+cbor
+json-seq
+cbor-seq
Del registro de la IANA: [1]
application/json
application/ld+json
( JSON-LD )application/msword
(.doc)application/pdf
application/sql
application/vnd.api+json
application/vnd.microsoft.portable-executable
(.efi)application/vnd.ms-excel
(.xls)application/vnd.ms-powerpoint
(.ppt)application/vnd.oasis.opendocument.text
(.odt)application/vnd.openxmlformats-officedocument.presentationml.presentation
(.pptx)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
(.xlsx)application/vnd.openxmlformats-officedocument.wordprocessingml.document
(.docx)application/x-www-form-urlencoded
application/xml
application/zip
application/zstd
(.zst)audio/mpeg
audio/ogg
image/avif
image/jpeg
(.jpg, .jpeg, .jfif, .pjpeg, .pjp) [12]image/png
image/svg+xml
(.svg)image/tiff
(.tif)model/obj
(.obj)multipart/form-data
text/plain
text/css
text/csv
text/html
text/javascript
(.js)text/xml
Mailcap (derivado de la frase "capacidad de correo") es un tipo de metaarchivo que se utiliza para configurar cómo las aplicaciones compatibles con MIME, como clientes de correo y navegadores web, procesan archivos de diferentes tipos de MIME. El formato mailcap está definido por RFC 1524 "Un mecanismo de configuración de agente de usuario para información de formato de correo multimedia", pero no está definido como un estándar de Internet. Es compatible con la mayoría de los sistemas Unix.
Las líneas pueden ser comentarios que comienzan con el carácter # o un tipo mime seguido de cómo manejar ese tipo mime.
Un archivo asociado es el archivo mime.types , que asocia extensiones de nombre de archivo con un tipo MIME . Si el tipo MIME está configurado correctamente, esto no es necesario, pero los tipos MIME pueden estar configurados incorrectamente o configurados en un tipo genérico como application/octet-stream
, y mime.types permite recurrir a la extensión en estos casos. De manera similar, dado que muchos sistemas de archivos no almacenan información del tipo MIME, sino que dependen de la extensión del nombre del archivo, los servidores web utilizan con frecuencia un archivo mime.types para determinar el tipo MIME.
Al visualizar un archivo, estos dos funcionan juntos de la siguiente manera: mime.types
asocia una extensión con un tipo MIME, mientras que mailcap
asocia un tipo MIME con un programa.
En sistemas tipo UNIX, el archivo mime.types generalmente se encuentra en y/o y el formato es simplemente que cada línea es una lista delimitada por espacios de un tipo MIME, seguida de cero o más extensiones. Por ejemplo, el tipo HTML se puede asociar a las extensiones y mediante la siguiente línea:/etc/mime.types
$HOME/.mime.types
.htm
.html
texto/html htm html
El archivo mime.types data de Netscape , donde usaba un formato diferente; [13] utilizó pares clave-valor y una lista de extensiones separadas por comas, junto con un encabezado estándar que consta de un comentario específico que identifica el archivo como un archivo mime.types, de la siguiente manera:
#--Información MIME de Netscape Communications Corporation# No elimine la línea anterior. Se utiliza para identificar el tipo de archivo.tipo=texto/html texts=htm,html
[RFC2046] especifica que la IANA asignará y enumerará los tipos de medios (anteriormente conocidos como tipos MIME) y los subtipos de medios.