In information and communications technology, a media type, content type or MIME type is a two-part identifier for file formats and content formats. Their purpose is comparable to filename extensions and uniform type identifiers, in that they identify the intended data format. They are mainly used by technologies underpinning the Internet, and also used on Linux desktop systems. The Internet Assigned Numbers Authority (IANA) is the official authority for the standardization and publication of these classifications. Media types were originally defined in Request for Comments RFC 2045 (MIME) Part One: Format of Internet Message Bodies (Nov 1996) in November 1996 as a part of the MIME (Multipurpose Internet Mail Extensions) specification, for denoting type of email message content and attachments; hence the original name, MIME type. Media types are also used by other internet protocols such as HTTP, document file formats such as HTML, and the XDG specifications implemented by Linux desktop environments, for similar purposes.
Terminology Different internet standards or web standards bodies differ on the preferred term for this type of identifier. The IANA and IETF use the term "media type", and consider the term "MIME type" to be obsolete, since media types have become used in contexts unrelated to email, such as HTTP. By contrast, the WHATWG continues to use the term "MIME type" and discourages use of the term "media type" as ambiguous, since it is used with a different meaning in connection with the CSS @media feature. The HTTP response header for providing the media type is Content-Type. The W3C has used ContentType as an XML data-type name for a media type. XDG specifications implemented by Linux desktop environments continue to use the term "MIME type".
Structure
A media type consists of a type and a subtype, which is further structured into a tree. A media type can optionally define a suffix and parameters:
As an example, an HTML file might be designated text/html; charset=UTF-8. In this example, text is the type, html is the subtype, and charset=UTF-8 is an optional parameter indicating the character encoding. Types, subtypes, and parameter names are case-insensitive. Parameter values are usually case-sensitive, but may be interpreted in a case-insensitive fashion depending on the intended use.
Types The "type" part defines the broad use of the media type. As of November 1996, the registered types were application, audio,image, message, multipart, text and video. By July 2024, the registered types included the foregoing, plus font, example, model, and haptics. An unofficial top-level type in common use is chemical, used for chemical file formats. In the context of Linux desktop environments, the unofficial top-level types inode (inodes other than normal files, such as filesystem directories, device files or symbolic links), x-content (removable media, such as x-content/image-dcf for DCF digital cameras), package (package manager packages) and x-office (generic categories of office productivity software document) are used.
Subtypes A subtype typically consists of a media format, but it may or must also contain other content, such as a tree prefix, producer, product or suffix, according to the different rules in registration trees. All media types should be registered using the IANA registration procedures. For the efficiency and flexibility of the media type registration process, different structures of subtypes can be registered in registration trees that are distinguished by the use of tree prefixes. Currently, the following trees are created: standard (no prefix), vendor (vnd. prefix), personal or vanity (prs. prefix), unregistered (x. prefix). These registration trees were first defined in November 1996 (obsoleted RFC 2048 - currently RFC 6838). New registration trees may be created by IETF Standards Action for external registration and management by well-known permanent organizations (e.g. scientific societies).
Standards tree The standards tree does not use any tree prefix. Examples are text/javascript, image/png. Registrations in the standards tree must be either associated with IETF specifications approved directly by the IESG, or registered by an IANA recognized standards-related organization.
Vendor tree The vendor tree includes media types associated with publicly available products. It uses the vnd. tree prefix. Examples are: application/vnd.ms-excel, application/vnd.oasis.opendocument.text. The terms "vendor" and "producer" are considered equivalent in the context. Industry consortia as well as non-commercial entities can register media types in the vendor tree. A registration in the vendor tree may be created by anyone who needs to interchange files associated with some software product or set of products. However, the registration belongs to the vendor or organization producing the software that employs the type being registered, and that vendor or organization can at any time elect to assert ownership of a registration done by a third party.
Personal or vanity tree The personal or vanity tree includes media types associated with non publicly available products or experimental media types. It uses the prs. tree prefix. Examples are audio/prs.sid, image/prs.btif.
… excerpt ends here. Continue reading the full article.
