Media type registration proposals are all expected to conform to
various requirements laid out in the following sections. Note that
requirement specifics sometimes vary depending on the registration
tree, again as detailed in the following sections.
Media types MUST function as an actual media format. Registration of
things that are better thought of as a transfer encoding, as a
charset, or as a collection of separate entities of another type, is
not allowed. For example, although applications exist to decode the
base64 transfer encoding [RFC2045], base64 cannot be registered as a
media type.
This requirement applies regardless of the registration tree
involved.
All registered media types MUST be assigned type and subtype names.
The combination of these names serves to uniquely identify the media
type, and the format of the subtype name identifies the registration
tree. Both type and subtype names are case-insensitive.
Type and subtype names beginning with "X-" are reserved for
experimental use and MUST NOT be registered. This parallels the
restriction on the x. tree, as discussed in Section 3.4.
Type and subtype names MUST conform to the following ABNF:
type-name = reg-name
subtype-name = reg-name
reg-name = 1*127reg-name-chars
reg-name-chars = ALPHA / DIGIT / "!" /
"#" / "$" / "&" / "." /
"+" / "-" / "^" / "_"
Note that this syntax is somewhat more restrictive than what is
allowed by the ABNF in [RFC2045].
In accordance with the rules specified in [RFC3023], media subtypes
that do not represent XML entities MUST NOT be given a name that ends
with the "+xml" suffix. More generally, "+suffix" constructs should
be used with care, given the possibility of conflicts with future
suffix definitions.
While it is possible for a given media type to be assigned additional
names, the use of different names to identify the same media type is
discouraged.
These requirements apply regardless of the registration tree
involved.
The choice of top-level type name MUST take into account the nature
of media type involved. New subtypes of top-level types MUST conform
to the restrictions of the top-level type, if any. The following
sections describe each of the initial set of top-level types and
their associated restrictions. Additionally, various protocols,
including but not limited to MIME, MAY impose additional restrictions
on the media types they can transport. (See [RFC2046] for additional
information on the restrictions MIME imposes.)
The "text" media type is intended for sending material that is
principally textual in form. A "charset" parameter MAY be used to
indicate the charset of the body text for "text" subtypes, notably
including the subtype "text/plain", which is a generic subtype for
plain text defined in [RFC2046]. If defined, a text "charset"
parameter MUST be used to specify a charset name defined in
accordance to the procedures laid out in [RFC2978].
Plain text does not provide for or allow formatting commands, font
attribute specifications, processing instructions, interpretation
directives, or content markup. Plain text is seen simply as a linear
sequence of characters, possibly interrupted by line breaks or page
breaks. Plain text MAY allow the stacking of several characters in
the same position in the text. Plain text in scripts like Arabic and
Hebrew may also include facilities that allow the arbitrary mixing of
text segments with opposite writing directions.
Beyond plain text, there are many formats for representing what might
be known as "rich text". An interesting characteristic of many such
representations is that they are to some extent readable even without
the software that interprets them. It is useful to distinguish them,
at the highest level, from such unreadable data as images, audio, or
text represented in an unreadable form. In the absence of
appropriate interpretation software, it is reasonable to present
subtypes of "text" to the user, while it is not reasonable to do so
with most non-textual data. Such formatted textual data should be
represented using subtypes of "text".
A media type of "image" indicates that the content specifies or more
separate images that require appropriate hardware to display. The
subtype names the specific image format.
A media type of "audio" indicates that the content contains audio
data.
A media type of "video" indicates that the content specifies a time-
varying-picture image, possibly with color and coordinated sound.
The term 'video' is used in its most generic sense, rather than with
reference to any particular technology or format, and is not meant to
preclude subtypes such as animated drawings encoded compactly.
Note that although in general this document strongly discourages the
mixing of multiple media in a single body, it is recognized that many
so-called video formats include a representation for synchronized
audio and/or text, and this is explicitly permitted for subtypes of
"video".
The "application" media type is to be used for discrete data that do
not fit in any of the media types, and particularly for data to be
processed by some type of application program. This is information
that must be processed by an application before it is viewable or
usable by a user. Expected uses for the "application" media type
include but are not limited to file transfer, spreadsheets,
presentations, scheduling data, and languages for "active"
(computational) material. (The latter, in particular, can pose
security problems that must be understood by implementors, and are
considered in detail in the discussion of the "application/
PostScript" media type in [RFC2046].)
For example, a meeting scheduler might define a standard
representation for information about proposed meeting dates. An
intelligent user agent would use this information to conduct a dialog
with the user, and might then send additional material based on that
dialog. More generally, there have been several "active" languages
developed in which programs in a suitably specialized language are
transported to a remote location and automatically run in the
recipient's environment. Such applications may be defined as
subtypes of the "application" media type.
The subtype of "application" will often be either the name or include
part of the name of the application for which the data are intended.
This does not mean, however, that any application program name may be
used freely as a subtype of "application".
Multipart and message are composite types, that is, they provide a
means of encapsulating zero or more objects, each labeled with its
own media type.
All subtypes of multipart and message MUST conform to the syntax
rules and other requirements specified in [RFC2046].
In some cases a new media type may not "fit" under any currently
defined top-level content type. Such cases are expected to be quite
rare. However, if such a case does arise a new top-level type can be
defined to accommodate it. Such a definition MUST be done via
standards-track RFC; no other mechanism can be used to define
additional top-level content types.
Media types MAY elect to use one or more media type parameters, or
some parameters may be automatically made available to the media type
by virtue of being a subtype of a content type that defines a set of
parameters applicable to any of its subtypes. In either case, the
names, values, and meanings of any parameters MUST be fully specified
when a media type is registered in the standards tree, and SHOULD be
specified as completely as possible when media types are registered
in the vendor or personal trees.
Parameter names have the syntax as media type names and values:
parameter-name = reg-name
Note that this syntax is somewhat more restrictive than what is
allowed by the ABNF in [RFC2045] and amended by [RFC2231].
There is no defined syntax for parameter values. Therefore
registrations MUST specify parameter value syntax. Additionally,
some transports impose restrictions on parameter value syntax, so
care should be taken to limit the use of potentially problematic
syntaxes; e.g., pure binary valued parameters, while permitted in
some protocols, probably should be avoided.
New parameters SHOULD NOT be defined as a way to introduce new
functionality in types registered in the standards tree, although new
parameters MAY be added to convey additional information that does
not otherwise change existing functionality. An example of this
would be a "revision" parameter to indicate a revision level of an
external specification such as JPEG. Similar behavior is encouraged
for media types registered in the vendor or personal trees but is not
required.
All registered media types MUST employ a single, canonical data
format, regardless of registration tree.
A precise and openly available specification of the format of each
media type MUST exist for all types registered in the standards tree
and MUST at a minimum be referenced by, if it isn't actually included
in, the media type registration proposal itself.
The specifications of format and processing particulars may or may
not be publicly available for media types registered in the vendor
tree, and such registration proposals are explicitly permitted to
limit specification to which software and version produce or process
such media types. References to or inclusion of format
specifications in registration proposals is encouraged but not
required.
Format specifications are still required for registration in the
personal tree, but may be either published as RFCs or otherwise
deposited with the IANA. The deposited specifications will meet the
same criteria as those required to register a well-known TCP port
and, in particular, need not be made public.
Some media types involve the use of patented technology. The
registration of media types involving patented technology is
specifically permitted. However, the restrictions set forth in
[RFC2026] on the use of patented technology in IETF standards-track
protocols must be respected when the specification of a media type is
part of a standards-track protocol. In addition, other standards
bodies making use of the standards tree may have their own rules
regarding intellectual property that must be observed in their
registrations.
Media types SHOULD interoperate across as many systems and
applications as possible. However, some media types will inevitably
have problems interoperating across different platforms. Problems
with different versions, byte ordering, and specifics of gateway
handling can and will arise.
Universal interoperability of media types is not required, but known
interoperability issues SHOULD be identified whenever possible.
Publication of a media type does not require an exhaustive review of
interoperability, and the interoperability considerations section is
subject to continuing evaluation.
These recommendations apply regardless of the registration tree
involved.
An analysis of security issues MUST be done for all types registered
in the standards Tree. A similar analysis for media types registered
in the vendor or personal trees is encouraged but not required.
However, regardless of what security analysis has or has not been
done, all descriptions of security issues MUST be as accurate as
possible regardless of registration tree. In particular, a statement
that there are "no security issues associated with this type" MUST
NOT be confused with "the security issues associates with this type
have not been assessed".
There is absolutely no requirement that media types registered in any
tree be secure or completely free from risks. Nevertheless, all
known security risks MUST be identified in the registration of a
media type, again regardless of registration tree.
The security considerations section of all registrations is subject
to continuing evaluation and modification, and in particular MAY be
extended by use of the "comments on media types" mechanism described
in Section 6 below.
Some of the issues that should be looked at in a security analysis of
a media type are:
o Complex media types may include provisions for directives that
institute actions on a recipient's files or other resources. In
many cases provision is made for originators to specify arbitrary
actions in an unrestricted fashion that may then have devastating
effects. See the registration of the application/postscript media
type in [RFC2046] for an example of such directives and how they
should be described in a media type registration.
o All registrations MUST state whether or not they employ such
"active content", and if they do, they MUST state what steps have
been taken to protect users of the media type from harm.
o Complex media types may include provisions for directives that
institute actions that, while not directly harmful to the
recipient, may result in disclosure of information that either
facilitates a subsequent attack or else violates a recipient's
privacy in some way. Again, the registration of the
application/postscript media type illustrates how such directives
can be handled.
o A media type that employs compression may provide an opportunity
for sending a small amount of data that, when received and
evaluated, expands enormously to consume all of the recipient's
resources. All media types SHOULD state whether or not they
employ compression, and if they do they should discuss what steps
need to be taken to avoid such attacks.
o A media type might be targeted for applications that require some
sort of security assurance but not provide the necessary security
mechanisms themselves. For example, a media type could be defined
for storage of confidential medical information that in turn
requires an external confidentiality service, or which is designed
for use only within a secure environment.
There are a number of additional requirements specific to the
registration of XML media types. These requirements are specified in
[RFC3023].
Some transports impose restrictions on the type of data they can
carry. For example, Internet mail traditionally was limited to 7bit
US-ASCII text. Encoding schemes are often used to work around such
transport limitations.
It is therefore useful to note what sort of data a media type can
consist of as part of its registration. An "encoding considerations"
field is provided for this purpose. Possible values of this field
are:
7bit: The content of the media type consists solely of CRLF-delimited
7bit US-ASCII text.
8bit: The content of the media type consists solely of CRLF-delimited
8bit text.
binary: The content consists of unrestricted sequence of octets.
framed: The content consists of a series of frames or packets without
internal framing or alignment indicators. Additional out-of-band
information is needed to interpret the data properly, including
but not necessarily limited to, knowledge of the boundaries
between successive frames and knowledge of the transport
mechanism. Note that media types of this sort cannot simply be
stored in a file or transported as a simple stream of octets;
therefore, such media types are unsuitable for use in many
traditional protocols. A commonly used transport with framed
encoding is the Real-time Transport Protocol, RTP. Additional
rules for framed encodings defined for transport using RTP are
given in [RFC3555].
Additional restrictions on 7bit and 8bit text are given in [RFC2046].
In the asynchronous mail environment, where information on the
capabilities of the remote mail agent is frequently not available to
the sender, maximum interoperability is attained by restricting the
media types used to those "common" formats expected to be widely
implemented. This was asserted in the past as a reason to limit the
number of possible media types, and it resulted in a registration
process with a significant hurdle and delay for those registering
media types.
However, the need for "common" media types does not require limiting
the registration of new media types. If a limited set of media types
is recommended for a particular application, that should be asserted
by a separate applicability statement specific for the application
and/or environment.
Therefore, universal support and implementation of a media type is
NOT a requirement for registration. However, if a media type is
explicitly intended for limited use, this MUST be noted in its
registration. The "Restrictions on Usage" field is provided for this
purpose.
Proposals for media types registered in the standards tree by the
IETF itself MUST be published as RFCs. RFC publication of vendor and
personal media type proposals is encouraged but not required. In all
cases the IANA will retain copies of all media type proposals and
"publish" them as part of the media types registration tree itself.
As stated previously, standards tree registrations for media types
defined in documents produced by other standards bodies MUST be
described by a formal standards specification produced by that body.
Such specifications MUST contain an appropriate media type
registration template taken from Section 10. Additionally, the
copyright on the registration template MUST allow the IANA to copy it
into the IANA registry.
Other than IETF registrations in the standards tree, the registration
of a data type does not imply endorsement, approval, or
recommendation by the IANA or the IETF or even certification that the
specification is adequate. To become Internet Standards, a protocol
or data object must go through the IETF standards process. This is
too difficult and too lengthy a process for the convenient
registration of media types.
The standards tree exists for media types that do require a
substantive review and approval process in a recognized standards
body. The vendor and personal trees exist for those media types that
do not require such a process. It is expected that applicability
statements for particular applications will be published from time to
time in the IETF, recommending implementation of, and support for,
media types that have proven particularly useful in those contexts.
As discussed above, registration of a top-level type requires
standards-track processing in the IETF and, hence, RFC publication.
4.11. Additional Information
Various sorts of optional information SHOULD be included in the
specification of a media type if it is available:
o Magic number(s) (length, octet values). Magic numbers are byte
sequences that are always present at a given place in the file and
thus can be used to identify entities as being of a given media
type.
o File name extension(s) commonly used on one or more platforms to
indicate that some file contains a given media type.
o Mac OS File Type code(s) (4 octets) used to label files containing
a given media type.
o Information about how fragment/anchor identifiers [RFC3986] are
constructed for use in conjunction with this media type.
In the case of a registration in the standards tree, this additional
information MAY be provided in the formal specification of the media
type. It is suggested that this be done by incorporating the IANA
media type registration form into the specification itself.