Request for Comments: 4288 Sun Microsystems
BCP: 13 J. Klensin
Obsoletes: 2048 December 2005
Category: Best Current Practice
Media Type Specifications and Registration Procedures
Status of This Memo
This document specifies an Internet Best Current Practices for the
Internet Community, and requests discussion and suggestions for
improvements. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
This document defines procedures for the specification and
registration of media types for use in MIME and other Internet
protocols.
Table of Contents
1. Introduction ....................................................3
2. Media Type Registration Preliminaries ...........................4
3. Registration Trees and Subtype Names ............................4
3.1. Standards Tree .............................................4
3.2. Vendor Tree ................................................5
3.3. Personal or Vanity Tree ....................................5
3.4. Special x. Tree ............................................5
3.5. Additional Registration Trees ..............................6
4. Registration Requirements .......................................6
4.1. Functionality Requirement ..................................6
4.2. Naming Requirements ........................................6
4.2.1. Text Media Types ......................................7
4.2.2. Image Media Types .....................................8
4.2.3. Audio Media Types .....................................8
4.2.4. Video Media Types .....................................8
4.2.5. Application Media Types ...............................9
4.2.6. Multipart and Message Media Types .....................9
4.2.7. Additional Top-level Types ............................9
4.3. Parameter Requirements ....................................10
4.4. Canonicalization and Format Requirements ..................10
4.5. Interchange Recommendations ...............................11
4.6. Security Requirements .....................................11
4.7. Requirements specific to XML media types ..................13
4.8. Encoding Requirements .....................................13
4.9. Usage and Implementation Non-requirements .................13
4.10. Publication Requirements .................................14
4.11. Additional Information ...................................15
5. Registration Procedure .........................................15
5.1. Preliminary Community Review ..............................16
5.2. IESG Approval .............................................16
5.3. IANA Registration .........................................16
5.4. Media Types Reviewer ......................................16
6. Comments on Media Type Registrations ...........................17
7. Location of Registered Media Type List .........................17
8. IANA Procedures for Registering Media Types ....................17
9. Change Procedures ..............................................18
10. Registration Template .........................................19
11. Security Considerations .......................................20
12. IANA Considerations ...........................................20
13. Acknowledgements ..............................................20
14. References ....................................................20
Appendix A. Grandfathered Media Types ............................22
Appendix B. Changes Since RFC 2048 ...............................22
1. Introduction
Recent Internet protocols have been carefully designed to be easily
extensible in certain areas. In particular, many protocols,
including but not limited to MIME [RFC2045], are capable of carrying
arbitrary labeled content. A mechanism is needed to label such
content and a registration process is needed for these labels, to
ensure that the set of such values is developed in an orderly, well-
specified, and public manner.
This document defines media type specification and registration
procedures that use the Internet Assigned Numbers Authority (IANA) as
a central registry.
Historical Note
The media type registration process was initially defined for
registering media types for use in the context of the asynchronous
Internet mail environment. In this mail environment there is a
need to limit the number of possible media types, to increase the
likelihood of interoperability when the capabilities of the remote
mail system are not known. As media types are used in new
environments in which the proliferation of media types is not a
hindrance to interoperability, the original procedure proved
excessively restrictive and had to be generalized. This was
initially done in [RFC2048], but the procedure defined there was
still part of the MIME document set. The media type specification
and registration procedure has now been moved to this separate
document, to make it clear that it is independent of MIME.
It may be desirable to restrict the use of media types to specific
environments or to prohibit their use in other environments. This
revision attempts for the first time to incorporate such
restrictions into media type registrations in a systematic way.
See Section 4.9 for additional discussion.
1.1. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
This specification makes use of the Augmented Backus-Naur Form (ABNF)
[RFC4234] notation, including the core rules defined in Appendix A of
that document.
2. Media Type Registration Preliminaries
Registration of a new media type or types starts with the
construction of a registration proposal. Registration may occur
within several different registration trees that have different
requirements, as discussed below. In general, a new registration
proposal is circulated and reviewed in a fashion appropriate to the
tree involved. The media type is then registered if the proposal is
acceptable. The following sections describe the requirements and
procedures used for each of the different registration trees.
3. Registration Trees and Subtype Names
In order to increase the efficiency and flexibility of the
registration process, different structures of subtype names may be
registered to accommodate the different natural requirements for,
e.g., a subtype that will be recommended for wide support and
implementation by the Internet community, or a subtype that is used
to move files associated with proprietary software. The following
subsections define registration "trees" that are distinguished by the
use of faceted names, e.g., names of the form
"tree.subtree...subtype". Note that some media types defined prior
to this document do not conform to the naming conventions described
below. See Appendix A for a discussion of them.
3.1. Standards Tree
The standards tree is intended for types of general interest to the
Internet community. Registrations in the standards tree MUST be
approved by the IESG and MUST correspond to a formal publication by a
recognized standards body. In the case of registration for the IETF
itself, the registration proposal MUST be published as an RFC.
Standards-tree registration RFCs can either be standalone
"registration only" RFCs, or they can be incorporated into a more
general specification of some sort.
Media types in the standards tree are normally denoted by names that
are not explicitly faceted, i.e., do not contain period (".", full
stop) characters.
The "owner" of a media type registration in the standards tree is
assumed to be the standards body itself. Modification or alteration
of the specification requires the same level of processing (e.g.,
standards track) required for the initial registration.
3.2. Vendor Tree
The vendor tree is used for media types associated with commercially
available products. "Vendor" or "producer" are construed as
equivalent and very broadly in this context.
A registration may be placed in the vendor tree by anyone who needs
to interchange files associated with the particular product.
However, the registration formally belongs to the vendor or
organization producing the software or file format being registered.
Changes to the specification will be made at their request, as
discussed in subsequent sections.
Registrations in the vendor tree will be distinguished by the leading
facet "vnd.". That may be followed, at the discretion of the
registrant, by either a media subtype name from a well-known producer
(e.g., "vnd.mudpie") or by an IANA-approved designation of the
producer’s name that is followed by a media type or product
designation (e.g., vnd.bigcompany.funnypictures).
While public exposure and review of media types to be registered in
the vendor tree is not required, using the ietf-types@iana.org
mailing list for review is strongly encouraged to improve the quality
of those specifications. Registrations in the vendor tree may be
submitted directly to the IANA.
3.3. Personal or Vanity Tree
Registrations for media types created experimentally or as part of
products that are not distributed commercially may be registered in
the personal or vanity tree. The registrations are distinguished by
the leading facet "prs.".
The owner of "personal" registrations and associated specifications
is the person or entity making the registration, or one to whom
responsibility has been transferred as described below.
While public exposure and review of media types to be registered in
the personal tree is not required, using the ietf-types list for
review is strongly encouraged to improve the quality of those
specifications. Registrations in the personal tree may be submitted
directly to the IANA.
3.4. Special x. Tree
For convenience and symmetry with this registration scheme, subtype
names with "x." as the first facet may be used for the same purposes
for which names starting in "x-" are used. These types are
unregistered, experimental, and for use only with the active
agreement of the parties exchanging them.
However, with the simplified registration procedures described above
for vendor and personal trees, it should rarely, if ever, be
necessary to use unregistered experimental types. Therefore, use of
both "x-" and "x." forms is discouraged.
Types in this tree MUST NOT be registered.
3.5. Additional Registration Trees
From time to time and as required by the community, the IANA may, by
and with the advice and consent of the IESG, create new top-level
registration trees. It is explicitly assumed that these trees may be
created for external registration and management by well-known
permanent bodies; for example, scientific societies may register
media types specific to the sciences they cover. In general, the
quality of review of specifications for one of these additional
registration trees is expected to be equivalent to registrations in
the standards tree. Establishment of these new trees will be
announced through RFC publication approved by the IESG.
4. Registration Requirements
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.
4.1. Functionality Requirement
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.
4.2. Naming Requirements
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.)
4.2.1. Text Media Types
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".
4.2.2. Image Media Types
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.
4.2.3. Audio Media Types
A media type of "audio" indicates that the content contains audio
data.
4.2.4. Video Media Types
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".
4.2.5. Application Media Types
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".
4.2.6. Multipart and Message Media Types
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].
4.2.7. Additional Top-level Types
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.
4.3. Parameter Requirements
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.
4.4. Canonicalization and Format Requirements
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.
4.5. Interchange Recommendations
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.
4.6. Security Requirements
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