<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<rfc ipr="trust200902" docName="draft-ietf-appsawg-media-type-regs-00" obsoletes="4288">
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?> 
<?rfc subcompact="no"?>

<front>

<title abbrev="Media Type Registration">
Media Type Specifications and
Registration Procedures
</title>

<author initials="N." surname="Freed" fullname="Ned Freed">
  <organization>Oracle</organization>
  <address>
    <postal>
      <street>800 Royal Oaks</street>
      <city>Monrovia</city> <region>CA</region>  <code>91016-6347</code>
      <country>USA</country>
    </postal>
    <email>ned+ietf@mrochek.com</email>
  </address>
</author>

<author initials="J.C." surname="Klensin" fullname="John C. Klensin">
  <organization></organization>
  <address>
    <postal>
      <street>1770 Massachusetts Ave, #322</street>
      <city>Cambridge</city> <region>MA</region> <code>02140</code>
      <country>USA</country>
    </postal>
    <email>klensin+ietf@jck.com</email>
  </address>
</author>

<author initials='T.' surname='Hansen' fullname='Tony Hansen'>
  <organization>AT&amp;T Laboratories</organization>
  <address>
    <postal>
      <street>200 Laurel Ave.</street>
      <city>Middletown</city> <region>NJ</region> <code>07748</code>
      <country>USA</country>
    </postal>
    <email>tony+mtsuffix@maillennium.att.com</email>
  </address>
</author>

<date year="2012" />
<area>Applications</area>
<keyword>RFC</keyword>
<keyword>Request for Comments</keyword>
<keyword>MIME</keyword>
<keyword>media types</keyword>
<keyword>I-D</keyword>
<keyword>Internet-Draft</keyword>

<abstract>
<t>
This document defines procedures for the specification and
registration of media types for use in HTTP, MIME and other Internet
protocols.
</t>
</abstract>

</front>

<middle>

<section anchor="Introduction" title="Introduction">

<t>
Recent Internet protocols have been carefully designed to be easily extensible
in certain areas.  In particular, many protocols, including but not limited
to <xref target="RFC2616">HTTP</xref> and <xref target="RFC2045">MIME</xref>,
are capable of carrying arbitrary labeled content. A mechanism is needed to
label such content and a registration process is needed for these labels,  so that 
that the set of such values are defined in a reasonably orderly, well-specified,
and public manner.
</t>

<t>
This document defines media type specification and registration procedures that use
the Internet Assigned Numbers Authority (IANA) as a central registry.
</t>

<section anchor="HistoricalNote" title="Historical Note">

<t>
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 <xref target="RFC2048"></xref>, 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.
</t>

<t>
It may be desirable to restrict the use of media types to specific environments
or to prohibit their use in other environments. This revision incorporates such
restrictions into media type registrations in a systematic way.
See <xref target="UsageImpReqs"></xref> for additional discussion.
</t>

</section>

<section anchor="Conventions" title="Conventions Used in This Document">

<t>
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 <xref target="RFC2119"></xref>.
</t>

<t>
This specification makes use of the
<xref target="RFC5234">Augmented Backus-Naur Form (ABNF)</xref> notation,
including the core rules defined in Appendix A of that document.
</t>

</section>

</section>

<section anchor="MediaTypeReg" title="Media Type Registration Preliminaries">

<t>
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.
</t>

</section>

<section anchor="MediaTypeNames" title="Registration Trees and Subtype Names">

<t>
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.
</t>

<section anchor="StandardsTree" title="Standards Tree">

<t>
The standards tree is intended for types of general interest to the
Internet community. Registrations in the standards tree MUST be either:
</t>

<t>
<list style="numbers">
<t>
in the case of registrations in IETF specifications, approved directly by the
IESG, or
</t>
<t>
registered by a recognized standards body using the "Specification Required"
IANA registration policy <xref target="RFC5226"/> (which implies Expert Review).
</t>
</list>
</t>

<t>
The first procedure is used for registering registrations from IETF Consensus
documents, or in rare cases when registering a grandfathered (see
<xref target="GrandFatheredMediaTypes"/>) and/or otherwise incomplete
registration is in the interest of the Internet community.
</t>

<t>
In the second case the IESG makes the decision on whether the registration
submitter represents a recognized standards body; after that, a
Media Types Reviewer (Designated Expert or a group of Designated Experts)
performs the Expert Review as specified in this document.
</t>

<t>
In the case of registration for the IETF itself, the registration
proposal MUST be published as an IETF Consensus RFC, which can be
on the Standards Track, a BCP, Informational, or Experimental.
In the case of registrations for other recognized standards bodies,
the format MUST be described by a formal standards specification produced by
that body.
</t>

<t>
Registrations published in non-IETF RFC streams are allowed and
require IESG approval.
</t>

<t>
Standards-tree registration RFCs can either be standalone
"registration only" RFCs, or they can be incorporated into a more
general specification of some sort.
</t>

<t>
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.
</t>

<t>
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 uses the same level of processing (e.g.,
a registration submitted on Standards Track can be revised in another
Standards Track RFC, but cannot be revised in an Informational RFC)
required for the initial registration.
</t>

<t>
Standards-tree registrations from recognized standards bodies may be
submitted directly to the IANA, where they will undergo Expert Review
<xref target="RFC5226"/> prior to approval. In this case, the Expert
Reviewer(s) will, among other things, ensure that the required specification
provides adequate documentation.
</t>

</section>

<section anchor="VendorTree" title="Vendor Tree">

<t>
The vendor tree is used for media types associated with commercially available
products.  "Vendor" and "producer" are construed very broadly in this context
and are considered equivalent. Note that industry consortia and similar groups
that do not qualify as recognized standards bodies can quite appropriately
register media types in the vendor tree.
</t>

<t>
A registration may be placed in the vendor tree by anyone who needs to
interchange files associated with some product or set of products.  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.
</t>

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

<t>
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
encouraged to improve the quality of those specifications. Registrations
in the vendor tree may be submitted directly to the IANA, where they will
undergo Expert Review <xref target="RFC5226"/> prior to approval.
</t>

</section>

<section anchor="PersonalTree" title="Personal or Vanity Tree">

<t>
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.". 
</t>

<t>
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.
</t>

<t>
While public exposure and review of media types to be registered in the
personal tree is not required, using the ietf-types@iana.org mailing list 
(see <xref target="MediaTypePresent"/>) for review is encouraged to improve the
quality of those specifications. Registrations in the personal tree may be
submitted directly to the IANA, where they will undergo Expert Review
<xref target="RFC5226"/> prior to approval.
</t>

</section>

<section anchor="XDotTree" title="Special x. Tree">

<t>
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. 
</t>

<t>
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 strongly 
discouraged.
</t>

<t>
Types in this tree MUST NOT be registered. If a generally useful and widely
deployed type incorrectly ends up with an "x." or "x-" name prefix, it
MAY be registered using its current name in an alternate tree by following the
procedure defined in <xref target="GrandFatheredMediaTypes"/>.
</t>

</section>

<section anchor="AdditionalRegistrationTrees"
         title="Additional Registration Trees">

<t>
From time to time and as required by the community, new
top-level registration trees may be created by IETF
Standards Action.  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
by a recognized Standards Development Organization.  When the IETF
performs such review, it needs to consider the greater expertise
of the requesting body with respect to the subject media type.
</t>

</section>

</section>

<section anchor="MediaTypeRequirements" title="Registration Requirements">

<t>
Media type registrations 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.
</t>

<section anchor="FunctionalityReq" title="Functionality Requirement">

<t>
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
<xref target="RFC2045" />, base64 cannot be registered as a media type.
</t>

<t>
This requirement applies regardless of the registration tree involved.
</t>

</section>

<section anchor="NamingReq" title="Naming Requirements">

<t>
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.
</t>

<t>
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 <xref target="XDotTree"/>.
</t>

<t>
Type and subtype names MUST conform to the following ABNF:
</t>

<figure><artwork type="abnf"><![CDATA[
    type-name = restricted-name
    subtype-name = restricted-name
     
    restricted-name = 1*127restricted-name-chars
    restricted-name-chars = ALPHA / DIGIT / "!" /
                            "#" / "$" / "&" / "." /
                            "+" / "-" / "^" / "_"
]]></artwork></figure>

<t>
Note that this syntax is somewhat more restrictive than what is allowed by
the ABNF in section 5.1 of <xref target="RFC2045"></xref>. Also note that
while this syntax allows names of up to 127 characters, implementation
limits may make such long names problematic. For this reason the components
of names SHOULD be limited to 64 characters.
</t>

<t>
Although the name syntax treates "+" as equivalent to any other character,
it is used in media type names to introduce a structured syntax specificer
suffix. Structured syntax suffix requirements are specified in
<xref target="SuffixReq"/>.
</t>

<t>
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.
</t>

<t>
These requirements apply regardless of the registration tree involved.
</t>

<t>
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 HTTP and MIME, MAY impose
additional restrictions on the media types they can transport. (See
<xref target="RFC2046"></xref> for additional information on the restrictions
MIME imposes.)
</t>

<section anchor="TextTypes" title="Text Media Types">

<t>
The "text" media type is intended for sending material that is principally
textual in form.
</t>

<t>
Many subtypes of text, notably including the subtype "text/plain", which is a
generic subtype for plain text defined in <xref target="RFC2046"></xref>,
define a "charset" parameter. If a "charset" parameter is defined for a
particular subtype of text, it MUST be used to specify a charset name
defined in accordance to the procedures laid out in <xref target="RFC2978"></xref>.
</t>

<t>
A "charset" parameter SHOULD NOT be specified when charset information is
transported inside the payload (e.g., as in "text/xml").
</t>

<t>
If a "charset" parameter is specified, it SHOULD be a required parameter,
eliminating the options of specifying a default value. If there is a strong reason
for the parameter to be optional despite this advice, each subtype MAY specify
its own default value, or alternately, it MAY specify that there is no default
value. Finally, the "UTF-8" charset <xref target="RFC3629"/> SHOULD be selected
as the default. See <xref target="I-D.ietf-appsawg-mime-default-charset"/>
for additional information on the use of "charset" parameters in conjunction
with subtypes of text.
</t>

<t>
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 different writing directions.
</t>

<t>
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".
</t>

</section>

<section anchor="ImageTypes" title="Image Media Types">

<t>
A media type of "image" indicates that the content specifies one or more
individual images. The subtype names the specific image format.  
</t>

</section>

<section anchor="AudioTypes" title="Audio Media Types">

<t>
A media type of "audio" indicates that the content contains audio data.
</t>

</section>

<section anchor="VideoTypes" title="Video Media Types">

<t>
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. 
</t>

<t>
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".
</t>

</section>

<section anchor="ApplicationTypes" title="Application Media Types">

<t>
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 last, in particular, can pose
security problems that must be understood by implementors, and that are
considered in detail in the discussion of the "application/postscript" media
type in <xref target="RFC2046"></xref>.)
</t>

<t>
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. 
</t>

<t>
The subtype of "application" will often either be 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 simply be used freely as a
subtype of "application"; the subtype needs to be registered.
</t>

</section>

<section anchor="MultipartMessageTypes" title="Multipart and Message Media Types">

<t>
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.
</t>

<t>
All subtypes of multipart and message MUST conform to the syntax rules
and other requirements specified in <xref target="RFC2046"/> and amended
by Section 3.5 of <xref target="RFC6532"/>.
</t>

</section>

<section anchor="AdditionalTypes" title="Additional Top-level Types">

<t>
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.
</t>

</section>

<section anchor="SuffixReq" title="Structured Syntax Name Suffixes">

<t>
<xref target='RFC3023'/> defined the first such augmentation to the
media type definition to additionally specify the underlying structure
of that media type. To quote:
</t>

<t>
<list style='hanging'>
  <t>
  This document also standardizes a convention (using
  the suffix '+xml') for naming media types ... when those
  media types represent XML MIME (Multipurpose
  Internet Mail Extensions) entities.
  </t>
</list>
</t>

<t>
That is, it specified a suffix (in that case, "+xml") to be
appended to the base media type name.
</t>

<t>
Since this was published, the defacto practice has arisen for using this
suffix convention for other well-known structuring syntaxes.
In particular, media types have been registered with suffixes
such as "+der", "+fastinfoset" and "+json". This specification formalizes this
practice and sets up a registry for structured type name suffixes.
</t>

<t>
The primary guideline for whether a structured type name suffix should be
registerable is that it be described by a readily-available description, preferably
within a document published by an established standards organization, and for
which there's a reference that can be used in a References section of
an RFC.
</t>

<t>
Media types that make use of a named structured syntax SHOULD
use the appropriate registered "+suffix" for that structured syntax
when they are registered. By the same token, media types MUST NOT be given
names incorporating suffixes for structured syntaxes they do not actually
employ. "+suffix" constructs for as-yet unregistered structured syntaxes
should be used with care, given the possibility of conflicts with future
suffix definitions.
</t>

</section>

<section anchor="TypeNameAliases" title="Deprecated Aliases">

<t>
In some cases a single media type may have been widely deployed prior to
registrion under multiple names. In such cases a preferred name MUST be
chosen for the media type and applications MUST use this to be compliant
with the type's registration. However, a list of deprecated aliases the
type is known by MAY be supplied as additional information in order to
assist application in processing the media type properly.
</t>

</section>

</section>

<section anchor="ParameterReqs" title="Parameter Requirements">

<t>
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.
</t>

<t>
Parameter names have the syntax as media type names and values:
</t>

<figure><artwork type="abnf"><![CDATA[
    parameter-name = restricted-name
]]></artwork></figure>

<t>
Note that this syntax is somewhat more restrictive than what is allowed by the ABNF
in <xref target="RFC2045"></xref> and amended by <xref target="RFC2231"></xref>.
</t>

<t>
Parameter names are case-insensitive and no meaning is attached to the
order in which they appear. It is an error for a specific parameter to be
specified more than once.
</t>

<t>
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.
</t>

<t>
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.
</t>

</section>

<section anchor="CanonFormatReqs" title="Canonicalization and Format Requirements">

<t>
All registered media types MUST employ a single, canonical data format,
regardless of registration tree.
</t>

<t>
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 is not actually included in, the media type registration
proposal itself.
</t>

<t>
The specifications of format and processing particulars may or may not be
publicly available for media types registered in the vendor and personal trees,
and such registrations are explicitly permitted to limit the information in the
registration to which software and version produce or process such media types.
References to or inclusion of format specifications in registrations is
encouraged but not required. Note, however, that the
public availability of a meaningful specification will
often make the difference between simply having a name
reserved so that there are no conflicts with other uses
and having the potential for other implementations of
the media type and useful interoperation with them.
</t>

<t>
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 <xref target="RFC3979"></xref> and
<xref target="RFC5378"></xref> 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.
</t>

<t>
IPR disclosures for registrations in the vendor and personal tree are encouraged
but not required.
</t>

</section>

<section anchor="InterchangeReqs" title="Interchange Recommendations">

<t>
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.
</t>

<t>
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.
</t>

<t>
These recommendations in this subsection apply regardless of the registration
tree involved.
</t>

</section>

<section anchor="SecurityReqs" title="Security Requirements">

<t>
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". 
</t>

<t>
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.
</t>

<t>
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
<xref target="MediaTypeComments"/> below.
</t>

<t>
Some of the issues that should be examined and described in a security analysis
of a media type are:

<list style="symbols">
<t>
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 <xref target="RFC2046"></xref>
for an example of such directives and how they should be described in a media type
registration.
</t>
<t>
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.
</t>
<t>
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.
</t>
<t>
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.
</t>
<t>
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
sensitive medical information that in turn requires an external
confidentiality and integrity protection services, or which is designed for
use only within a secure environment. Types not requiring such services
SHOULD document this in their security considerations.
</t>
</list>
</t>

</section>

<section anchor="XMLReqs" title="Requirements specific to XML media types">
<t>
There are a number of additional requirements specific to the registration of
XML media types. These requirements are specified in <xref target="RFC3023"></xref>.
</t>

</section>

<section anchor="EncodingReqs" title="Encoding Requirements">

<t>
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.
</t>

<t>
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:

<list style="hanging">

<t hangText='7bit:'>
The content of the media type consists solely of CRLF-delimited 7bit US-ASCII
text.
</t>


<t hangText='8bit:'>
The content of the media type consists solely of CRLF-delimited 8bit text.
</t>

<t hangText='binary:'>
The content consists of an unrestricted sequence of octets.
</t>

<t hangText='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 <xref target="RFC4855"></xref>.
</t>

</list>
</t>

<t>
Additional restrictions on 7bit and 8bit text are given in Section 4.1.1 of
<xref target="RFC2046"></xref>.
</t>

</section>

<section anchor="UsageImpReqs" title="Usage and Implementation Non-requirements">

<t>
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 resulted
in a registration process with a significant hurdle and delay for those
registering media types.
</t>

<t>
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.
</t>

<t>
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.
</t>

</section>

<section anchor="PubReqs" title="Publication Requirements">

<t>
Media types registered in the standards tree by the IETF itself
MUST be published as RFCs. RFC publication of vendor and personal media type
registrations is allowed but not required. In all cases the IANA will retain copies
of all media type registrations and "publish" them as part of the media types
registration tree itself.
</t>

<t>
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. Additionally, any
copyright on the registration template MUST allow the IANA to copy it into
the IANA registry.
</t>

<t>
Other than IETF registrations in the standards tree, the registration of a media
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.   While it provides additional assurances when it is appropriate, this
is too difficult and too lengthy a process for the convenient registration of
media types.
</t>

<t>
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.
</t>

<t>
As discussed above, registration of a top-level type requires standards-track
processing in the IETF and, hence, RFC publication.
</t>

</section>

<section anchor="AddInfo" title="Additional Information">

<t>
Various sorts of optional information SHOULD be included in the specification
of a media type if it is available:

<list style="symbols">
<t>
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.
</t>
<t>
File name extension(s) commonly used on one or more platforms to indicate that some
file contains a given media type.
</t>
<t>
Mac OS File Type code(s) (4 octets) used to label files containing a given
media type.
</t>
<t>
Information about how fragment/anchor identifiers <xref target="RFC3986"></xref>
are constructed for use in conjunction with this media type.
</t>
</list>
</t>

<t>
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.
</t>

</section>

</section>

<section anchor="MediaTypeRegProc" title="Media Type Registration Procedures">

<t>
The media type registration procedure is not a formal
standards process, but rather an administrative procedure
intended to allow community comment and sanity checking
without excessive time delay.
</t>

<t>
The normal IETF processes should be followed for all IETF
registrations in the standards tree. The posting of an
Internet Draft is a necessary first step, followed by
posting to the ietf-types@iana.org list as discussed below.
</t>

<section anchor="MediaTypePresent" title="Preliminary Community Review">

<t>
Notice of a potential media type registration in the standards tree SHOULD be
sent to the ietf-types@iana.org mailing list for review. This mailing list
has been established for the purpose of reviewing proposed media and access
types. Registrations in other trees MAY be sent to the list for review as well;
doing so is entirely OPTIONAL, but is strongly encouraged.
</t>

<t>
The intent of the public posting to this list is to solicit comments and
feedback on the choice of type/subtype name, the unambiguity of the references
with respect to versions and external profiling information, and a review of any
interoperability or security considerations. The submitter may submit a revised
registration proposal or abandon the registration completely and at any time.
</t>

</section>

<section anchor="SubmissiontoIANA" title="Submit request to IANA">

<t>
Media types registered in the standards tree by the IETF itself MUST be
reviewed and approved by the IESG as part of the normal standards process.
Standards tree registrations by recognized standards bodies as well as
registrations in the vendor and personal tree should be submitted directly
to the IANA, unless other arrangements were made as part of a liaison
agreement. In either case posting the registration to the ietf-types@iana.org
list for review prior to submission is strongly encouraged. 
</t>

<t>
Registration requests can be sent to
iana@iana.org. A web form for registration requests is also available:

<figure>
<artwork>
  http://www.iana.org/cgi-bin/mediatypes.pl
</artwork>
</figure>
</t>

<section anchor="ProvisionalRegistrations" title="Provisional Registrations">

<t>
Standardization processes often take considerable time to complete. In order
to facilitate prototyping and testing it is often helpful to assign identifiers,
including but not limited to media types, early in the process. This way
identifiers used during standards development can remain unchanged once the
process is complete and implementations and documentation do not have to be
updated.
</t>

<t>
Accordingly, a provisonal registration process is provided to support early
assigment of media type names. A provisional registration MAY be submitted
to IANA for standards tree types. The only required fields in such registrations
are the media type name and contact information (inckuding the standards body
name).
</t>

<t>
Upon receipt of a provisionl registration, IANA will check the name and
contact information, then publish the registration in a separate provisional
registration list.
</t>

<t>
Provisional registrations MAY be updated or abandoned at any time.
</t>

</section>
</section>

<section anchor="MediaTypeReviewAndApproval" title="Review and Approval">

<t>
With the exception of provisional standards tree registrations,
registrations submitted to the IANA will be passed on to the media types
reviewer. The media types reviewer, who is appointed by the IETF Applications
Area Director(s), will review the registration to make sure it meets the
requirements set forth in this document. Registrations that do not meet
these requirements will be returned to the submitter for revision.
</t>

<t>
Decisions made by the media types reviewer may be appealed to the IESG using
the procedure specified in section 6.5.4 of <xref target="RFC2026"></xref>.
</t>

<t>
Once a media type registration has passed review, the IANA will register the
media type and make the media type registration available to the community.
</t>


<t>
In the case of standards tree registrations from other standards bodies IANA
will also check that the submitter is in fact a recognized standards body. If
the submitter is not currently recognized as such the IESG will be asked to
confirm their status. Recognition from the IESG MUST be obtained before a
standards tree registration can proceed.
</t>

</section>

<section anchor="MediaTypeComments" title="Comments on Media Type Registrations">

<t>
Comments on registered media types may be submitted by members of the
community to the IANA at iana@iana.org.  These comments will be reviewed by the
media types reviewer and then passed on to the "owner" of the media type if possible.
Submitters of comments may request that their comment be attached to the media
type registration itself, and if the IANA approves of this, the comment will be
made accessible in conjunction with the type registration.
</t>

</section>

<section anchor="MediaTypesLocation" title="Location of Registered Media Type List">

<t>
Media type registrations are listed by the IANA at:
</t>

<figure>
<artwork>
  http://www.iana.org/assignments/media-types/
</artwork>
</figure>

</section>


<section anchor="MediaTypesChangeControl" title="Change Procedures">

<t>
Once a media type has been published by the IANA, the owner may request a change
to its definition. The descriptions of the different registration trees above
designate the "owners" of each type of registration.
The same procedure that would be appropriate for the original registration request is
used to process a change request.
</t>

<t>
Significant changes to a media type's definition should be requested only when
there are serious omissions or errors in
the published specification. When review is required, a change request may be
denied if it renders entities that were valid under the previous definition
invalid under the new definition.
</t>

<t>
The owner of a media type may pass responsibility to another person or agency
by informing the IANA; this can be done without discussion or review.
</t>

<t>
The IESG may reassign responsibility for a media type. The most common case of
this will be to enable changes to be made to types where the author of the
registration has died, moved out of contact or is otherwise unable to make
changes that are important to the community.
</t>

<t>
Media type registrations may not be deleted; media types that are no
longer believed appropriate for use can be declared OBSOLETE by a
change to their "intended use" field; such media types will be clearly
marked in the lists published by the IANA.
</t>

</section>

<section anchor="MediaTypeRegTemplate" title="Registration Template">

<figure>
<artwork>
Type name:

Subtype name:

Required parameters:

Optional parameters:

Encoding considerations:

Security considerations:

Interoperability considerations:

Published specification:

Applications that use this media type:

Additional information:

  Deprecated alias names for this type:
  Magic number(s):
  File extension(s):
  Macintosh file type code(s):
  URI fragment/anchor identifier(s):
  

Person &amp; email address to contact for further information:

Intended usage:

(One of COMMON, LIMITED USE or OBSOLETE.) 

Restrictions on usage:

(Any restrictions on where the media type can be used go here.)

Author:

Change controller:

Provisional registration? (standards tree only):

(Any other information that the author deems interesting may be
added below this line.)
</artwork>
</figure>

<t>
"'N/A', written exactly that way, can be used in any field if desired to
emphasize the fact that it does not apply or that the question
was not omitted by accident.  Do not use 'none' or other words
that could be mistaken for a response".
</t>

<t>
Some discussion of Macintosh file type codes and their purpose can be found in
<xref target="MacOSFileTypes"></xref>.
</t>

</section>

</section>

<section title='Structured Syntax Suffix Registration Procedures' anchor='SuffixProcess'>

<t>
Someone wishing to define a "+suffix" name for a structured syntax for use with
a new media type registration SHOULD:
</t>

<t>
<list style='numbers'> 
<t>
Check IANA's registry of media type name suffixes to see whether 
or not there is already an entry for that well-defined structured syntax.
</t>
<t>
If there is no entry for their suffix scheme, fill out the template
(specified in <xref target="SuffixTemplate"/>)
and include that with the media type registration.
The template may be contained in an Internet Draft, alone or as part of 
some other protocol specification. The template may also be submitted
in some other form (as part of another document or as a stand-alone
document), but the contents will be treated as an "IETF Contribution"
under the guidelines of <xref target='RFC5378'>RFC 5378</xref>.
</t> 
<t>
Send a copy of the template or a pointer to 
the containing document (with specific reference to the section with 
the template) to the mailing list
<eref target='ietf-types@ietf.org'>ietf-types@ietf.org</eref>,
requesting review.
This may be combined with a request to review the media type registration.
Allow a reasonable time for discussion and comments.
</t>
<t>
Respond to review comments and make revisions to the proposed registration
as needed to bring it into line with the guidelines given in this document.
</t>
<t>
Submit the (possibly updated) registration template (or pointer to the document 
containing it) to IANA at <eref target='iana@iana.org'>iana@iana.org</eref>.
</t> 
</list>
</t>

<t>
Upon receipt of a structured syntax suffix registration request,  
</t>

<t>
<list style='numbers'>
<t>
IANA checks the submission for completeness; if 
sections are missing or citations are not correct, IANA rejects the 
registration request.
</t>
<t>
IANA checks the current registry for an entry 
with the same name; if such a registry exists, IANA rejects the 
registration request.
</t>
<t>
IANA requests Expert Review of the 
registration request against the corresponding guidelines.
</t>
<t>
The Designated Expert may request additional review
or discussion, as necessary.
</t>
<t>
If Expert Review recommends registration, IANA adds the registration to the 
appropriate registry.
</t>
</list>
</t>

<section anchor="SuffixChangeControl" title="Change Procedures">

<t>
Registrations may be updated in each registry by the same mechanism 
as required for an initial registration. In cases where the original 
definition of the scheme is contained in an IESG-approved document, 
update of the specification also requires IESG approval.
</t>

</section>

<section title='Structured Syntax Suffix Registration Template' anchor='SuffixTemplate'>

<t>
This template describes the fields that must be supplied in a structured syntax
sufficx registration request:
</t>

<t>      
<list style='hanging' hangIndent='2'>
<t hangText='Name'> <vspace />
Full name of the well-defined structured syntax.
</t>
<t hangText='+suffix'> <vspace />
Suffix used to indicate conformance to the syntax.
</t>
<t hangText='References.'> <vspace />
Include full citations for all specifications necessary to understand
the structured syntax.
</t>
<t hangText='Encoding considerations'> <vspace />
General guidance regarding encoding considerations for any type employing
this syntax should be given here. The same requirements for media type
encoding considerations given in <xref target="EncodingReqs"/> apply here.
</t>
<t hangText='Interoperability considerations'> <vspace />
Any issues regarding the interoperable use of types employing this
structured syntax should be given here.
Examples would include the existence of incompatible versions of the syntax,
issues combining certain charsets with the syntax, or incompatibilities with
other types or protocols.
</t>
<t hangText='Security considerations'><vspace />
Security considerations shared by media types employing this structured
syntax must be specified here. The same requirements for media type
security considerations given in <xref target="SecurityReqs"/> apply here,
with the exception that option of not assessing the security considerations
is not available for suffix registrations.
</t>
<t hangText='Contact'> <vspace />
Person (including contact information) to contact for further information.
</t>
<t hangText='Author/Change controller.'> <vspace />
Person (including contact information)
authorized to change this suffix registration.
</t>
</list> 
</t>

</section>

</section>

<section anchor="security" title="Security Considerations">

<t>
Security requirements for media type registrations are discussed in
<xref target="SecurityReqs"></xref>. 
</t>

</section>

<section anchor="IANA" title="IANA Considerations">

<t>
The purpose of this document is to define IANA registries for media types and
structured syntax suffixes as well as the procedures for managing these
registries. Additionally, this document requires IANA to maintain a list of
IESG-recognized standards bodies who are allowed to register types in the standards
tree.
</t>

</section>

<section title="Acknowledgements">

<t>
The current authors would like to acknowledge their debt
to the late Dr. Jon Postel, whose general model of IANA
registration procedures and specific contributions
shaped the predecessors of this document <xref target="RFC2048"/>.  We hope that
the current version is one with which he would have
agreed but, as it is impossible to verify that
agreement, we have regretfully removed his name as a
co-author.
</t>

<t>
Barry Leiba and Alexey Melnikov provided many helpful review comments and
suggestions.
</t>

</section>

</middle>

<back>

<references title="Normative References">

<?rfc include="reference.RFC.2045" ?>
<?rfc include="reference.RFC.2046" ?>
<?rfc include="reference.RFC.2119" ?>
<?rfc include="reference.RFC.2616" ?>
<?rfc include="reference.RFC.2978" ?>
<?rfc include="reference.RFC.3023" ?>
<?rfc include="reference.RFC.3629" ?>
<?rfc include="reference.RFC.3979" ?>
<?rfc include="reference.RFC.3986" ?>
<?rfc include="reference.RFC.4855" ?>
<?rfc include="reference.RFC.5226" ?>
<?rfc include="reference.RFC.5234" ?>
<?rfc include="reference.RFC.5378" ?>

<!-- 5335bis = 6532 -->
<reference anchor="RFC6532"> 
<front> 
<title> 
Internationalized Email Headers 
</title> 
<author initials="A." surname="Yang" fullname="Abel Yang" > 
<organization/> 
</author> 
<author initials="S." surname="Steel" fullname="Shawn Steel"> 
<organization/> 
</author> 
<author initials="N." surname="Freed" fullname="Ned Freed"> 
<organization/> 
</author> 
<date month="January" year="2012" /> 
</front> 
<seriesInfo name="RFC" value="6532" /> 
</reference> 

<reference anchor='I-D.ietf-appsawg-mime-default-charset'>
<front>
<title>Update to MIME regarding Charset Parameter Handling in Textual Media Types</title>

<author initials='A' surname='Melnikov' fullname='Alexey Melnikov'>
    <organization>Isode Limited</organization>
</author>
<author initials='J' surname='Reschke' fullname='Julian Reschke'>
    <organization>greenbytes</organization>
</author>

<date month='February' day='1' year='2012' />

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-appsawg-mime-default-charset-00' />
<format type='TXT'
        target='http://tools.ietf.org/id/draft-ietf-appsawg-mime-default-charset'/>
</reference>

</references>

<references title="Informative References">

<?rfc include="reference.RFC.2026" ?>
<?rfc include="reference.RFC.2048" ?>
<?rfc include="reference.RFC.2231" ?>
<reference anchor="MacOSFileTypes"
           target="http://www.info.apple.com/kbnum/n55381">
   <front>
     <title>Mac OS: File Type and Creator Codes, and File Formats</title>
     <author>
       <organization>Apple Computer, Inc.</organization>
     </author>
     <date month="June" year="1993"/>
   </front>
   <seriesInfo name="Apple Knowledge Base" value="Article 55381"/>
</reference>

</references>

<section anchor="GrandFatheredMediaTypes" title="Grandfathered Media Types">

<t>
A number of media types with unfaceted names, registered prior to 1996, would,
if registered under the guidelines in this document, be given a faceted name
and placed into either the vendor or personal
trees.  Reregistration of those types to reflect the appropriate trees is
encouraged but not required.   Ownership and change control principles
outlined in this document apply to those types as if they had been registered
in the trees described above.
</t>

<t>
From time to time there may also be cases where a media type with an unfaceted
name has been widely deployed without being registered. If possible such types
SHOULD be reregistered with a proper faceted name. However, if this is not
possible the type can, subject to approval by both the media types reviewer and
the IESG, be registered in the proper tree with its unfaceted name.
</t>

</section>

<section anchor="Open Issues" title="Open Issues">

<t>
<list style="symbols">

<t>
The list of fields in the registration is getting long. Should the fields
be numbered and referred to by number in order to facilitate translation
into other languages and similar activities?
</t>
<t>
Currently anyone can register a vendor media type on behalf of a vendor but
subsequent to that only the vendor can make changes. Do we want to retain
this restriction?
</t>

</list>
</t>

</section>

<section anchor="ChangesSince4288" title="Changes Since RFC 4288">

<t>
<list style="symbols">

<t>
Suffixes to indicate the use of a particular structured syntax are now fully
specified and a suffix registration process has been defined.
</t>
<t>
Registration of widely deployed unregistered unfaceted type names in the vendor
or personal trees is now allowed, subject to approval by the media types
reviewer and the IESG.
</t>
<t>
The standards tree registration process has been revised to include Expert
Review and generalized to address cases like media types in non-IETF stream
documents.
</t>
<t>
A field for fragment/anchor identifiers has been added to the registration template.
</t>
<t>
The specification requirements for personal tree registrations have been changed
to be the same as those for the vendor tree. The text has been changed to encourage
(but not require) specification availability.
</t>
<t>
The definition of additional trees has been clarified to state that an IETF
Standards Action is required.
</t>
<t>
Widely deployed types with "X-" names can now be registered as an exception in
the vendor tree.
</t>
<t>
The reqiremeents on changes to registrations have been loosened so
minor changes are easier to make.
</t>

<t>
The registration process has been completely restructured so that with the exception
of IETF-generated types in the standards tree, all requests are procesed by IANA and
not the IESG.
</t>

<t>
A provisional registration process has been added for early assignment of types
in the standards tree.
</t>

<t>
Many editorial changes have been made throughout the document to make the
requirements and processes it describes clearer and easier to follow.
</t>

<t>
Added the ability to specify a list of deprecated aliases.
</t>

</list>
</t>

</section>

</back>

</rfc>
