rfc9694.original | rfc9694.txt | |||
---|---|---|---|---|
MEDIAMAN M.J. Dürst | Internet Engineering Task Force (IETF) M. Dürst | |||
Internet-Draft Aoyama Gakuin University | Request for Comments: 9694 Aoyama Gakuin University | |||
Updates: 6838 (if approved) 5 July 2024 | BCP: 13 December 2024 | |||
Intended status: Best Current Practice | Updates: 6838 | |||
Expires: 6 January 2025 | Category: Best Current Practice | |||
ISSN: 2070-1721 | ||||
Guidelines for the Definition of New Top-Level Media Types | Guidelines for the Definition of New Top-Level Media Types | |||
draft-ietf-mediaman-toplevel-06 | ||||
Abstract | Abstract | |||
This document defines best practices for defining new top-level media | This document defines best practices for defining new top-level media | |||
types. It also introduces a registry for top-level media types, and | types. It also introduces a registry for top-level media types, and | |||
contains a short history of top-level media types. It updates RFC | contains a short history of top-level media types. It updates RFC | |||
6838. | 6838. | |||
[RFC Editor, please remove this paragraph.] Comments and discussion | ||||
about this document should be directed to media-types@ietf.org, the | ||||
mailing list of the Media Type Maintenance (mediaman) WG. | ||||
Alternatively, issues can be raised on GitHub at https://github.com/ | ||||
ietf-wg-mediaman/toplevel. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This memo documents an Internet Best Current Practice. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
BCPs is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 6 January 2025. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9694. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2024 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | ||||
Please review these documents carefully, as they describe your rights | carefully, as they describe your rights and restrictions with respect | |||
and restrictions with respect to this document. Code Components | to this document. Code Components extracted from this document must | |||
extracted from this document must include Revised BSD License text as | include Revised BSD License text as described in Section 4.e of the | |||
described in Section 4.e of the Trust Legal Provisions and are | Trust Legal Provisions and are provided without warranty as described | |||
provided without warranty as described in the Revised BSD License. | in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
1.1. Background . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Background | |||
1.2. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.2. Requirements Language | |||
2. Rules and Criteria for the Registration of New Top-Level Media | 2. Rules and Criteria for the Registration of New Top-Level Media | |||
Types . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | Types | |||
2.1. Required Criteria . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Required Criteria | |||
2.2. Additional Considerations . . . . . . . . . . . . . . . . 4 | 2.2. Additional Considerations | |||
2.3. Negative Criteria . . . . . . . . . . . . . . . . . . . . 6 | 2.3. Negative Criteria | |||
3. Top-Level Media Type History . . . . . . . . . . . . . . . . 6 | 3. Top-Level Media Type History | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 4. IANA Considerations | |||
4.1. Registration of Top-level Media Types . . . . . . . . . . 8 | 4.1. Registration of Top-level Media Types | |||
4.2. Initialization of the Registry of Top-level Media | 4.2. Initialization of the Registry of Top-Level Media Types | |||
Types . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 5. Security Considerations | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | Acknowledgements | |||
Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | References | |||
Changes from draft-ietf-mediaman-toplevel-01 Onwards . . . . . 11 | Normative References | |||
Changes from draft-ietf-mediaman-toplevel-00 to | Informative References | |||
draft-ietf-mediaman-toplevel-00 . . . . . . . . . . . . 11 | Author's Address | |||
Changes from draft-duerst-mediaman-toplevel-00 to | ||||
draft-ietf-mediaman-toplevel-01 . . . . . . . . . . . . 11 | ||||
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
References . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
Normative References . . . . . . . . . . . . . . . . . . . . . 12 | ||||
Informative References . . . . . . . . . . . . . . . . . . . . 12 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
1. Introduction | 1. Introduction | |||
This document defines best practices for defining new top-level media | This document defines best practices for defining new top-level media | |||
types. Top-level media types ('top-level types' for short) appear to | types. Top-level media types ('top-level types' for short) appear to | |||
the left of the slash in a media type, examples being 'text/...', | the left of the slash in a media type, examples being 'text/...', | |||
'application/...', 'image/...', and so on. Please note that top- | 'application/...', 'image/...', and so on. Please note that top- | |||
level types are different from trees (standards tree, vendor tree, | level types are different from trees (standards tree, vendor tree, | |||
personal tree), which (except for the standards tree) are indicated | personal tree), which (except for the standards tree) are indicated | |||
immediately to the right of the slash with a prefix of '.../vnd.' or | immediately to the right of the slash with a prefix of '.../vnd.' or | |||
'.../prs.'. RFC 6838 [RFC6838], Section 4.2.7 only summarily gave | '.../prs.'. Section 4.2.7 of RFC 6838 [RFC6838] only summarily gives | |||
criteria for defining additional top-level types. This document | criteria for defining additional top-level media types. This | |||
provides more detailed criteria for defining additional top-level | document provides more detailed criteria for defining additional top- | |||
types. It therefore updates RFC 6838 [RFC6838]. | level media types. It therefore updates RFC 6838 [RFC6838]. | |||
1.1. Background | 1.1. Background | |||
New top-level types are rare enough and different enough from each | New top-level types are rare enough and different enough from each | |||
other that each application needs to be evaluated separately. The | other that each application needs to be evaluated separately. The | |||
main protocol extension point for media types are subtypes below each | main protocol extension point for media types are subtypes below each | |||
of the main types. For formats that do not fit below any other top- | of the main types. For formats that do not fit below any other top- | |||
level type, the 'application' top-level type can always be used. | level type, the 'application' top-level type can always be used. | |||
The main function of media types and subtypes is the dispatch of data | The main function of media types and subtypes is the dispatch of data | |||
formats to application code. In most cases, this requires and is | formats to application code. In most cases, this requires and is | |||
done using the full type (i.e. including the subtype, and often some | done using the full type (i.e., including the subtype, and often some | |||
parameters). The top-level type can occasionally serve as a fallback | parameters). The top-level type can occasionally serve as a fallback | |||
for the tentative dispatch to applications handling a very wide range | for the tentative dispatch to applications handling a very wide range | |||
of related formats. Please note that assumptions about the | of related formats. Please note that assumptions about the | |||
correctness of a media type must be made carefully, as it could be | correctness of a media type must be made carefully, as it could be | |||
under the control of an attacker. | under the control of an attacker. | |||
In some older scenarios, it may also have been possible to identify a | In some older scenarios, it may also have been possible to identify a | |||
device (e.g. a phone for audio messages, a printer or fax device for | device (e.g., a phone for audio messages, a printer or fax device for | |||
images, a video recorder for videos, a computer for 'application' | images, a video recorder for videos, a computer for 'application' | |||
subtypes). However, the current hardware landscape, where computers | subtypes). However, the current hardware landscape, where computers | |||
and smartphones can handle a very wide variety of media, makes such a | and smartphones can handle a very wide variety of media, makes such a | |||
scenario look somewhat far-fetched. | scenario look somewhat far-fetched. | |||
The top-level type can be used for user-directed information. | The top-level type can be used for user-directed information. | |||
Besides direct inspection of the type string by the user, this | Besides direct inspection of the type string by the user, this | |||
includes using different types of default icons for different top- | includes using different types of default icons for different top- | |||
level types. | level types. | |||
1.2. Requirements Language | 1.2. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
2. Rules and Criteria for the Registration of New Top-Level Media Types | 2. Rules and Criteria for the Registration of New Top-Level Media Types | |||
This section describes the rules and criteria for new top-level | This section describes the rules and criteria for new top-level media | |||
types, including criteria already defined in RFC 6838 [RFC6838]. | types, including criteria already defined in RFC 6838 [RFC6838]. | |||
2.1. Required Criteria | 2.1. Required Criteria | |||
The following is the list of required criteria for the definition of | The following is the list of required criteria for the definition of | |||
a new top-level type. Motivations for the requirements are also | a new top-level type. Motivations for the requirements are also | |||
included. | included. | |||
* Every new top-level type MUST be defined in a Standards Track RFC | * Every new top-level type MUST be defined in a Standards Track RFC | |||
(see RFC 8126, Section 4.9 [RFC8126]). This will make sure there | (see Section 4.9 of RFC 8126 [RFC8126]). This will ensure there | |||
is sufficient community interest, review, and consensus | is sufficient community interest, review, and consensus | |||
appropriate for a new top-level type. | appropriate for a new top-level type. | |||
* The IANA Considerations section of an RFC defining a new top-level | * The IANA Considerations section of an RFC defining a new top-level | |||
type MUST request that IANA add this new top-level type to the | type MUST request that IANA add this new top-level type to the | |||
registry of top-level types. | registry of top-level types. | |||
* The criteria for what types do and do not fall under the new top- | * The criteria for what types do and do not fall under the new top- | |||
level type MUST be defined clearly. Clear criteria are expected | level type MUST be defined clearly. Clear criteria are expected | |||
to help expert reviewers to evaluate whether a subtype belongs | to help expert reviewers evaluate whether or not a subtype belongs | |||
below the new type or not, and whether the registration template | below the new type, and whether the registration template for a | |||
for a subtype contains the appropriate information. If the | subtype contains the appropriate information. Criteria that | |||
criteria cannot be defined clearly, this is a strong indication | cannot be defined clearly is a strong indication that whatever is | |||
that whatever is being talked about is not suitable as a top-level | being talked about is not suitable as a top-level type. | |||
type. | ||||
* Any RFC defining a new top-level type MUST clearly document the | * Any RFC defining a new top-level type MUST clearly document the | |||
security considerations applying to all or a significant subset of | security considerations applying to all or a significant subset of | |||
subtypes. | subtypes. | |||
* At the minimum, one subtype MUST be described. A top-level type | * At a minimum, one subtype MUST be described. A top-level type | |||
without any subtype serves no purpose. Please note that the | without any subtypes serves no purpose. Please note that the | |||
'example' top-level describes a subtype 'example'. | 'example' top-level describes the subtype 'example'. | |||
2.2. Additional Considerations | 2.2. Additional Considerations | |||
* Existing wide use of an unregistered top-level type may be an | * Existing wide use of an unregistered top-level type may be an | |||
indication of a need, and therefore an argument for formally | indication of a need, and therefore may be an argument for | |||
defining this new top-level type. | formally defining this new top-level type. | |||
* On the other hand, the use of unregistered top-level types is | * On the other hand, the use of unregistered top-level types is | |||
highly discouraged. | highly discouraged. | |||
* Use of an IETF WG to define a new top-level type is not needed, | * Use of an IETF WG to define a new top-level type is not needed, | |||
but may be advisable in some cases. There are examples of new | but may be advisable in some cases. There are examples of new | |||
top-level type definitions without a WG (RFC 2077 [RFC2077]), with | top-level type definitions without a WG (RFC 2077 [RFC2077]), with | |||
a short, dedicated WG (RFC 8081 [RFC8081]), and with a WG that | a short, dedicated WG (RFC 8081 [RFC8081]), and with a WG that | |||
included other related work (draft-ietf-mediaman-haptics | included other related work (RFC 9695 [RFC9695]). | |||
[HAPTICS]). | ||||
* The document defining the new top-level type should include | * The document defining the new top-level type should include | |||
initial registrations of actual subtypes. The exception may be a | initial registrations of actual subtypes. The exception may be a | |||
top-level type similar to 'example'. This will help to show the | top-level type similar to 'example'. This will help show the need | |||
need for the new top-level type, will allow checking the | for the new top-level type, allow checking the appropriateness of | |||
appropriateness of the definition of the new top-level type, will | the definition of the new top-level type, avoid separate work for | |||
avoid separate work for registering an initial slate of subtypes, | registering an initial slate of subtypes, and provide examples of | |||
and will provide examples of what is considered a valid subtype | what is considered a valid subtype for future subtype | |||
for future subtype registrations. | registrations. | |||
* The registration and actual use of a certain number of subtypes | * The registration and actual use of a certain number of subtypes | |||
under the new top-level type should be expected. The existence of | under the new top-level type should be expected. The existence of | |||
a single subtype should not be enough; it should be clear that new | a single subtype should not be enough; it should be clear that new | |||
similar types may appear in the future. Otherwise, the creation | similar types may appear in the future. Otherwise, the creation | |||
of a new top-level type is most probably not justified. | of a new top-level type is most probably not justified. | |||
* The proposers of the new top-level type and the wider community | * The proposers of the new top-level type and the wider community | |||
should be willing to commit to emitting and consuming the new top- | should be willing to commit to emitting and consuming the new top- | |||
level type in environments that they control. | level type in environments that they control. | |||
* Desirability for common parameters: The fact that a group of | * Desirability for common parameters: The fact that a group of | |||
(potential) types have (mostly) common parameters may be an | (potential) types have (mostly) common parameters may be an | |||
indication that these belong under a common new top-level type. | indication that they belong under a common new top-level type. | |||
* Top-level types can help humans with understanding and debugging. | * Top-level types can help humans with understanding and debugging. | |||
Therefore, evaluating how a new top-level type helps humans | Therefore, evaluating how a new top-level type helps humans | |||
understand types may be crucial. But as often with humans, | understand types may be crucial. But as often with humans, | |||
opinions may widely differ. | opinions may widely differ. | |||
* Common restrictions may apply to all subtypes of a top-level type. | * Common restrictions may apply to all subtypes of a top-level type. | |||
Examples are the restriction to CRLF line endings for subtypes of | Examples are the restriction to CRLF line endings for subtypes of | |||
type 'text' (at least in the context of electronic mail), or on | type 'text' (at least in the context of electronic mail), or on | |||
subtypes of type 'multipart'. | subtypes of type 'multipart'. | |||
* Top-level types are also used frequently in dispatching code. For | * Top-level types are also used frequently in dispatching code. For | |||
example "multipart/*" is frequently handled as multipart/mixed, | example, "multipart/*" is frequently handled as multipart/mixed, | |||
without understanding of a specific subtype. The top-level types | without understanding of a specific subtype. The top-level types | |||
'image', 'audio', and 'video' are also often handled generically. | 'image', 'audio', and 'video' are also often handled generically. | |||
Documents with these top-level types can be passed to applications | Documents with these top-level types can be passed to applications | |||
handling a wide variety of image, audio, or video formats. HTML | handling a wide variety of image, audio, or video formats. HTML- | |||
generating applications can select different HTML elements (e.g. | generating applications can select different HTML elements (e.g., | |||
<img> or <audio>) for including data of different top-level types. | <img> or <audio>) for including data of different top-level types. | |||
Applications can select different icons to represent unknown types | Applications can select different icons to represent unknown types | |||
in different top-level types. | in different top-level types. | |||
2.3. Negative Criteria | 2.3. Negative Criteria | |||
This subsection lists negative criteria for top-level types, | This subsection lists negative criteria for top-level types; it | |||
identifying criteria that are explicitly not reasons for a top-level | identifies criteria that are explicitly not reasons for a top-level | |||
type registration. | type registration. | |||
* A top-level type is not a pointer into another registration space | * A top-level type is not a pointer into another registration space | |||
that offers duplicate registrations for existing media types. | that offers duplicate registrations for existing media types. | |||
Example: a top-level type of 'oid', leading to types of the form | Example: a top-level type of 'oid', leading to types of the form | |||
oid/nnnnn, where nnn is an OID (Object Identifier) designating a | oid/nnnnn, where nnn is an OID (Object Identifier) designating a | |||
specific media format, | specific media format. | |||
* A top-level type MUST NOT be defined for the mapping of other | * A top-level type MUST NOT be defined for the mapping of other | |||
protocol elements to media types. For example, while there may be | protocol elements to media types. For example, while there may be | |||
some merit to a mapping from media types to URIs, e.g. in the | some merit to a mapping from media types to URIs, e.g., in the | |||
context of RDF (Resource Description Framework), there is very | context of RDF (Resource Description Framework), there is very | |||
limited merit in a reverse mapping, and even less merit in | limited merit in a reverse mapping, and even less merit in | |||
creating a top-level type for such a mapping. The same applies to | creating a top-level type for such a mapping. The same applies to | |||
other protocol elements such as file extensions or URI schemes. | other protocol elements such as file extensions or URI schemes. | |||
The recommended solution in case a mapping is needed is to choose | If a mapping is needed, the recommended solution is to choose a | |||
a single type/subtype and put the additional information in an | single type/subtype and put the additional information in an | |||
appropriately named parameter. As an example, information on a | appropriately named parameter. As an example, information on a | |||
file extension '.dcat' can be encoded as 'application/octet- | file extension '.dcat' can be encoded as 'application/octet- | |||
string; filename=foo.dcat'. | string; filename=foo.dcat'. | |||
* Media types are not a general type system. A top-level type MUST | * Media types are not a general type system. A top-level type MUST | |||
NOT be defined if its main or only purpose is to map other type | NOT be defined if its main or only purpose is to map other type | |||
systems, e.g. in programming languages or ontologies. | systems, e.g., in programming languages or ontologies. | |||
* A new top-level type SHOULD NOT generate aliases for existing | * A new top-level type SHOULD NOT generate aliases for existing | |||
widely used types or subtypes. | widely used types or subtypes. | |||
* Top-level types with an "X-" prefix cannot be registered, and | * Top-level types with an "X-" prefix cannot be registered, and | |||
SHOULD NOT be used. This is in line with RFC [RFC6648]. | SHOULD NOT be used. This is in line with RFC 6648 [RFC6648]. | |||
3. Top-Level Media Type History | 3. Top-Level Media Type History | |||
This section briefly describes the history of top-level types. The | This section briefly describes the history of top-level types. The | |||
emphasis is on the aspects of the history that are relevant to the | emphasis is on the aspects of the history that are relevant to the | |||
adoption of new top-level types. | adoption of new top-level types. | |||
RFC 1341 [RFC1341] first defined the structuring of content types | RFC 1341 [RFC1341] first defined the structuring of content types | |||
into (top-level) type and subtype, and introduced the 'text', | into (top-level) type and subtype, and introduced the 'text', | |||
'multipart', 'message', 'image', 'audio', 'video', and 'application' | 'multipart', 'message', 'image', 'audio', 'video', and 'application' | |||
skipping to change at page 7, line 46 ¶ | skipping to change at line 303 ¶ | |||
| additional top-level content types. | | additional top-level content types. | |||
The 'model' top-level type was introduced by RFC 2077 [RFC2077] in | The 'model' top-level type was introduced by RFC 2077 [RFC2077] in | |||
1997. | 1997. | |||
RFC 4735 [RFC4735] introduced the 'example' top-level type for use in | RFC 4735 [RFC4735] introduced the 'example' top-level type for use in | |||
documentation examples. | documentation examples. | |||
The 'font' top-level type was defined in RFC 8081 [RFC8081], a work | The 'font' top-level type was defined in RFC 8081 [RFC8081], a work | |||
of the 'justfont' IETF WG, in 2017. This was formalizing the | of the 'justfont' IETF WG, in 2017. This was formalizing the | |||
widespread use of the unofficial 'font' top-level type which people | widespread use of the unofficial 'font' top-level type that people | |||
were using in preference to official, registered types. | were using in preference to official, registered types. | |||
There is ongoing work on defining a new 'haptics' top-level type in | There is ongoing work to define a new 'haptics' top-level media type | |||
draft-ietf-mediaman-haptics [HAPTICS]. | in RFC 9695 [RFC9695]. | |||
Wikipedia (at https://en.wikipedia.org/wiki/Chemical_file_format) | Wikipedia (at https://en.wikipedia.org/wiki/Chemical_file_format) | |||
reports the unofficial use of a 'chemical' top-level type. This top- | reports the unofficial use of a 'chemical' top-level type. This top- | |||
level type was proposed by Peter Murray-Rust and Henry Rzepa at a | level type was proposed by Peter Murray-Rust and Henry Rzepa at a | |||
workshop at the First WWW conference in May 1994 CHEMIME [CHEMIME]. | workshop at the First WWW conference in May 1994 [CHEMIME]. It is in | |||
It is in widespread use, but remains unregistered. | widespread use but remains unregistered. | |||
Some Linux desktop logic uses what looks like a top-level type of 'x- | Some Linux desktop logic uses what looks like a top-level type of 'x- | |||
scheme-handler' to map URI schemes to applications. In addition, the | scheme-handler' to map URI schemes to applications. In addition, the | |||
type 'inode/directory' is used. However, this is a purely local, | type 'inode/directory' is used. However, this is a purely local, | |||
system-specific use, not intended for exchange. If exchange or | system-specific use, and is not intended for exchange. If exchange | |||
standardization are desired, a change from e.g. 'x-scheme-handler/ | or standardization are desired, a change from, for example, 'x- | |||
http' to something like 'application/scheme-handler; scheme=http' or | scheme-handler/http' to something like 'application/scheme-handler; | |||
'inode/directory' to 'multipart/inode-directory' or 'application/ | scheme=http' or 'inode/directory' to 'multipart/inode-directory' or | |||
inode-directory (in all cases, properly registered) is strongly | 'application/inode-directory (in all cases, properly registered) is | |||
recommended. | strongly recommended. | |||
The document currently defining the requirements for new top-level | The document currently defining the requirements for new top-level | |||
media types is RFC 6838 [RFC6838]. Of particular relevance to the | media types is RFC 6838 [RFC6838]. Of particular relevance to the | |||
work in this document are Section 4.2.5 (Application Media Types) and | work in this document are Sections 4.2.5 (Application Media Types) | |||
Section 4.2.7 (Additional Top-Level Types). These two sections are | and 4.2.7 (Additional Top-Level Types) of [RFC6838]. These two | |||
not strictly aligned, because the first says that anything that | sections are not strictly aligned, because the first says that | |||
doesn't go under a more specific type can go under the 'application' | anything that doesn't go under a more specific type can go under the | |||
top-level type, while the later section allows for new top-level | 'application' top-level type, while the later section allows for new | |||
types. | top-level types. | |||
4. IANA Considerations | 4. IANA Considerations | |||
4.1. Registration of Top-level Media Types | 4.1. Registration of Top-level Media Types | |||
Registrations of new top-level types follow the "Standards Action" | Registrations of new top-level types follow the "Standards Action" | |||
policy (see RFC 8126, Section 4.9 [RFC8126]). | policy (see Section 4.9 of RFC 8126 [RFC8126]). | |||
Registrations of new top-level types have to provide the name of the | Registrations of new top-level types have to provide the name of the | |||
top-level type, the defining specification (RFC, or the respective | top-level type, the defining specification (RFC, or the respective | |||
draft during the approval process), and, if applicable, some | draft during the approval process), and, if applicable, some | |||
comments. They have to contain a "IANA Considerations" section | comments. The defining specifications have to contain an "IANA | |||
requesting addition to the registry of top-level media types, and | Considerations" section requesting addition to the registry of top- | |||
have to document security considerations for the top-level types they | level media types and document security considerations for the top- | |||
register. | level types they register. | |||
The comments field is empty or contains short comments about the | The comments field is empty or contains short comments about the | |||
usage of the type. Comments can be added or updated by the experts | usage of the type. Comments can be added or updated by the experts | |||
for subtype registrations under the respective top-level type, and by | for subtype registrations under the respective top-level type, and by | |||
IANA itself. | IANA itself. | |||
There should be at least one subtype, except for registrations that | There should be at least one subtype, except for registrations that | |||
are for demonstration purposes only (e.g. the example top-level | are for demonstration purposes only (e.g. the example top-level | |||
type). | type). | |||
4.2. Initialization of the Registry of Top-level Media Types | 4.2. Initialization of the Registry of Top-Level Media Types | |||
IANA is requested to create and populate a registry of top-level | IANA has created the "Top-Level Media Types" registry and populated | |||
media types, This should be done by expanding the "Registries | it with the values in Table 1. IANA also added a pointer to this | |||
included below" section of https://www.iana.org/assignments/media- | registry from the "Media Types" registry group. | |||
types/media-types.xhtml (assuming this is compatible with IANA | ||||
infrastructure; if not, then there should be at least a pointer from | ||||
that page to this new registry). | ||||
For each top-level media type, the registry contains the name of the | For each top-level media type, the registry contains the name of the | |||
type, a pointer to the RFC defining the type, a pointer to IANA's | type, a pointer to the RFC defining the type, a pointer to IANA's | |||
registry of subtypes for that type, and a comment field. | registry of subtypes for that type, and a comment field. | |||
The initial state of the registry is as follows: | The initial state of the registry is as follows: | |||
+=============+==============+================+===================+ | +===========+=========+==================================+==============+ | |||
| name | Defining RFC | Registry of | Comments | | |name |Defining |Registry of Subtypes |Comments | | |||
| | | Subtypes | | | | |RFC | | | | |||
+=============+==============+================+===================+ | +===========+=========+==================================+==============+ | |||
| application | RFC 2046 | [pointer to be | - | | |application|[RFC2046]|[Application Media Types |- | | |||
| | | added by IANA] | | | | | |(https://www.iana.org/assignments/| | | |||
+-------------+--------------+----------------+-------------------+ | | | |media-types/)] | | | |||
| audio | RFC 2046 | [pointer to be | - | | +-----------+---------+----------------------------------+--------------+ | |||
| | | added by IANA] | | | |audio |[RFC2046]|[Audio Media Types |- | | |||
+-------------+--------------+----------------+-------------------+ | | | |(https://www.iana.org/assignments/| | | |||
| example | RFC 4735 | - | no registrations, | | | | |media-types/)] | | | |||
| | | | for examples only | | +-----------+---------+----------------------------------+--------------+ | |||
+-------------+--------------+----------------+-------------------+ | |example |[RFC4735]|[Example Media Types] |no | | |||
| font | RFC 8081 | [pointer to be | - | | | | | |registrations,| | |||
| | | added by IANA] | | | | | | |for examples | | |||
+-------------+--------------+----------------+-------------------+ | | | | |only | | |||
| haptics | RFC | [pointer to be | - | | +-----------+---------+----------------------------------+--------------+ | |||
| | [HAPTICS] | added by IANA] | | | |font |[RFC8081]|[Font Media Types] |- | | |||
+-------------+--------------+----------------+-------------------+ | +-----------+---------+----------------------------------+--------------+ | |||
| image | RFC 2046 | [pointer to be | - | | |haptics |[RFC9695]|[Haptics Media Types] |- | | |||
| | | added by IANA] | | | | |[RFC9695]| | | | |||
+-------------+--------------+----------------+-------------------+ | +-----------+---------+----------------------------------+--------------+ | |||
| message | RFC 2046 | [pointer to be | - | | |image |[RFC2046]|[Image Media Types] |- | | |||
| | | added by IANA] | | | +-----------+---------+----------------------------------+--------------+ | |||
+-------------+--------------+----------------+-------------------+ | |message |[RFC2046]|[Message Media Types] |- | | |||
| model | RFC 2077 | [pointer to be | - | | +-----------+---------+----------------------------------+--------------+ | |||
| | | added by IANA] | | | |model |[RFC2077]|[Model Media Types] |- | | |||
+-------------+--------------+----------------+-------------------+ | +-----------+---------+----------------------------------+--------------+ | |||
| multipart | RFC 2046 | [pointer to be | - | | |multipart |[RFC2046]|[Multipart Media Types] |- | | |||
| | | added by IANA] | | | +-----------+---------+----------------------------------+--------------+ | |||
+-------------+--------------+----------------+-------------------+ | |text |[RFC2046]|[Text Media Types] |requires CRLF | | |||
| text | RFC 2046 | [pointer to be | requires CRLF for | | | | | |for newlines | | |||
| | | added by IANA] | newlines | | +-----------+---------+----------------------------------+--------------+ | |||
+-------------+--------------+----------------+-------------------+ | |video |[RFC2046]|[Video Media Types] |- | | |||
| video | RFC 2046 | [pointer to be | - | | +-----------+---------+----------------------------------+--------------+ | |||
| | | added by IANA] | | | ||||
+-------------+--------------+----------------+-------------------+ | ||||
Table 1: Initial Values for the Registry of Top-level Media Types | Table 1: Initial Values for the Registry of Top-level Media Types | |||
IANA is also requested to add pointers to this document and to the | IANA has also added pointers to this document and to the "Top-Level | |||
new registry in the application page at https://www.iana.org/form/ | Media Types" registry in the application for a media type at | |||
media-types. | <https://www.iana.org/form/media-types>. | |||
5. Security Considerations | 5. Security Considerations | |||
This document as such is not expected to introduce any security | This document as such is not expected to introduce any security | |||
issues. The security issues of introducing a new top-level media | issues. The security issues related to introducing a new top-level | |||
type MUST be evaluated and documented carefully. | media type MUST be evaluated and documented carefully. | |||
Changelog | ||||
RFC Editor, please remove this section before publication. | ||||
Changes from draft-ietf-mediaman-toplevel-01 Onwards | ||||
* See https://github.com/ietf-wg-mediaman/toplevel/commits/main/ | ||||
draft-ietf-mediaman-toplevel.xml. | ||||
Changes from draft-ietf-mediaman-toplevel-00 to draft-ietf-mediaman- | ||||
toplevel-00 | ||||
* In the Introduction, add a Background section. | ||||
* Reorganized so that criteria come first, and split criteria | ||||
section into various subsections. | ||||
* Add reasons to criteria. | ||||
* Fixes to status and related text pieces. | ||||
* Cosmetic fixes, in particular getting rid of 'references in your | ||||
face' (e.g. "RFC ABCD [RFC ABCD]") little by little. | ||||
Changes from draft-duerst-mediaman-toplevel-00 to draft-ietf-mediaman- | ||||
toplevel-01 | ||||
* Add reference to RFC 2077 [RFC2077] for definition of 'model' | ||||
type. | ||||
* Add examples of use of top-level types for dispatch. | ||||
* Remove a stray '>' before the mention of RFC 4735 [RFC4735]. | ||||
* Change link to chemical/* Wikipedia page. | ||||
* Remove reference in abstract (pointed out by idnits). | ||||
Acknowledgements | Acknowledgements | |||
Continuous encouragement for writing this draft came from Harald | Continuous encouragement for writing this document came from Harald | |||
Alvestrand. Further encouragement was provided by Murray S. | Alvestrand. Further encouragement was provided by Murray | |||
Kucherawy. Both Harald and Murray also provided ideas for actual | S. Kucherawy. Both Harald and Murray also provided ideas for actual | |||
text. Without them, this memo would never have reached even the | text. Without them, this memo would never have reached even the | |||
first draft stage. Alexey Melnikov provided the difficult to find | first draft stage. Alexey Melnikov provided the difficult to find | |||
pointer to RFC 2077 [RFC2077] and examples for applications | pointer to RFC 2077 [RFC2077] and examples for applications | |||
dispatching on top-level types. Additional information and comments | dispatching on top-level types. Additional information and comments | |||
were received from Chris Lilley, Graham Kline, Henry S. Rzepa, | were received from Chris Lilley, Graham Kline, Henry S. Rzepa, | |||
Francesca Palombini, Zaheduzzaman Sarker, Amanda Baber, Paul Wouters, | Francesca Palombini, Zaheduzzaman Sarker, Amanda Baber, Paul Wouters, | |||
Roman Danyliw, John Scudder, Radia Perlman, Lars Eggert, and Antoine | Roman Danyliw, John Scudder, Radia Perlman, Lars Eggert, and Antoine | |||
Fressancourt. Inspiration for negative criteria or examples was | Fressancourt. Inspiration for negative criteria or examples were | |||
provided by Phillip Hallam-Baker, Donald E. Eastlake 3rd, Petter | provided by Phillip Hallam-Baker, Donald E. Eastlake 3rd, Petter | |||
Reinholdtsen, and Christian Heller. | Reinholdtsen, and Christian Heller. | |||
References | References | |||
Normative References | Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type | [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type | |||
Specifications and Registration Procedures", BCP 13, | Specifications and Registration Procedures", BCP 13, | |||
RFC 6838, DOI 10.17487/RFC6838, January 2013, | RFC 6838, DOI 10.17487/RFC6838, January 2013, | |||
<https://www.rfc-editor.org/info/rfc6838>. | <https://www.rfc-editor.org/info/rfc6838>. | |||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
<https://www.rfc-editor.org/rfc/rfc8126.html#section-4.9>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
Informative References | Informative References | |||
[CHEMIME] Rzepa, H.S., Murray-Rust, P., and B. Whitaker, "The | [CHEMIME] Rzepa, H.S., Murray-Rust, P., and B. Whitaker, "The | |||
Application of Chemical Multipurpose Internet Mail | Application of Chemical Multipurpose Internet Mail | |||
Extensions (Chemical MIME) Internet Standards to | Extensions (Chemical MIME) Internet Standards to | |||
Electronic Mail and World Wide Web Information Exchange", | Electronic Mail and World Wide Web Information Exchange", | |||
DOI 10.1021/ci9803233, 14 August 1998, | Journal of Chemical Information Computer Science, vol. 38, | |||
no. 6, pp. 976-982, DOI 10.1021/ci9803233, 14 August 1998, | ||||
<https://pubs.acs.org/doi/10.1021/ci9803233>. | <https://pubs.acs.org/doi/10.1021/ci9803233>. | |||
[HAPTICS] Muthusamy, Y. K. and C. Ullrich, "The 'haptics' Top-level | ||||
Media Type", RFC XXXX, <https://datatracker.ietf.org/doc/ | ||||
draft-ietf-mediaman-haptics/>. | ||||
[RFC1341] Borenstein, N. and N. Freed, "MIME (Multipurpose Internet | [RFC1341] Borenstein, N. and N. Freed, "MIME (Multipurpose Internet | |||
Mail Extensions): Mechanisms for Specifying and Describing | Mail Extensions): Mechanisms for Specifying and Describing | |||
the Format of Internet Message Bodies", RFC 1341, | the Format of Internet Message Bodies", RFC 1341, | |||
DOI 10.17487/RFC1341, June 1992, | DOI 10.17487/RFC1341, June 1992, | |||
<https://www.rfc-editor.org/info/rfc1341>. | <https://www.rfc-editor.org/info/rfc1341>. | |||
[RFC1437] Borenstein, N. and M. Linimon, "The Extension of MIME | [RFC1437] Borenstein, N. and M. Linimon, "The Extension of MIME | |||
Content-Types to a New Medium", RFC 1437, | Content-Types to a New Medium", RFC 1437, | |||
DOI 10.17487/RFC1437, April 1993, | DOI 10.17487/RFC1437, April 1993, | |||
<https://www.rfc-editor.org/info/rfc1437>. | <https://www.rfc-editor.org/info/rfc1437>. | |||
skipping to change at page 13, line 30 ¶ | skipping to change at line 488 ¶ | |||
[RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | |||
Extensions (MIME) Part Two: Media Types", RFC 2046, | Extensions (MIME) Part Two: Media Types", RFC 2046, | |||
DOI 10.17487/RFC2046, November 1996, | DOI 10.17487/RFC2046, November 1996, | |||
<https://www.rfc-editor.org/info/rfc2046>. | <https://www.rfc-editor.org/info/rfc2046>. | |||
[RFC2048] Freed, N., Klensin, J., and J. Postel, "Multipurpose | [RFC2048] Freed, N., Klensin, J., and J. Postel, "Multipurpose | |||
Internet Mail Extensions (MIME) Part Four: Registration | Internet Mail Extensions (MIME) Part Four: Registration | |||
Procedures", RFC 2048, DOI 10.17487/RFC2048, November | Procedures", RFC 2048, DOI 10.17487/RFC2048, November | |||
1996, <https://www.rfc-editor.org/info/rfc2048>. | 1996, <https://www.rfc-editor.org/info/rfc2048>. | |||
[RFC2077] Nelson, S., Parks, C., and Mitra., "The Model Primary | [RFC2077] Nelson, S., Parks, C., and Mitra, "The Model Primary | |||
Content Type for Multipurpose Internet Mail Extensions", | Content Type for Multipurpose Internet Mail Extensions", | |||
RFC 2077, DOI 10.17487/RFC2077, January 1997, | RFC 2077, DOI 10.17487/RFC2077, January 1997, | |||
<https://www.rfc-editor.org/info/rfc2077>. | <https://www.rfc-editor.org/info/rfc2077>. | |||
[RFC4735] Taylor, T., "Example Media Types for Use in | [RFC4735] Taylor, T., "Example Media Types for Use in | |||
Documentation", RFC 4735, DOI 10.17487/RFC4735, October | Documentation", RFC 4735, DOI 10.17487/RFC4735, October | |||
2006, <https://www.rfc-editor.org/info/rfc4735>. | 2006, <https://www.rfc-editor.org/info/rfc4735>. | |||
[RFC6648] Saint-Andre, P., Crocker, D., and M. Nottingham, | [RFC6648] Saint-Andre, P., Crocker, D., and M. Nottingham, | |||
"Deprecating the "X-" Prefix and Similar Constructs in | "Deprecating the "X-" Prefix and Similar Constructs in | |||
Application Protocols", BCP 178, RFC 6648, | Application Protocols", BCP 178, RFC 6648, | |||
DOI 10.17487/RFC6648, June 2012, | DOI 10.17487/RFC6648, June 2012, | |||
<https://www.rfc-editor.org/info/rfc6648>. | <https://www.rfc-editor.org/info/rfc6648>. | |||
[RFC8081] Lilley, C., "The "font" Top-Level Media Type", RFC 8081, | [RFC8081] Lilley, C., "The "font" Top-Level Media Type", RFC 8081, | |||
DOI 10.17487/RFC8081, February 2017, | DOI 10.17487/RFC8081, February 2017, | |||
<https://www.rfc-editor.org/info/rfc8081>. | <https://www.rfc-editor.org/info/rfc8081>. | |||
[RFC9695] Muthusamy, Y. K. and C. Ullrich, "The 'haptics' Top-level | ||||
Media Type", RFC 9695, DOI 10.17487/RFC9695, December | ||||
2024, <https://www.rfc-editor.org/info/rfc9695>. | ||||
Author's Address | Author's Address | |||
Martin J. Dürst | Martin J. Dürst | |||
Aoyama Gakuin University | Aoyama Gakuin University | |||
Fuchinobe 5-10-1, Chuo-ku, Sagamihara, Kanagawa | Fuchinobe 5-10-1, Chuo-ku, Sagamihara, Kanagawa | |||
252-5258 | 252-5258 | |||
Japan | Japan | |||
Phone: +81 42 759 6329 | Phone: +81 42 759 6329 | |||
Email: duerst@it.aoyama.ac.jp | Email: duerst@it.aoyama.ac.jp | |||
URI: https://www.sw.it.aoyama.ac.jp/Dürst/ | URI: https://www.sw.it.aoyama.ac.jp/Dürst/ | |||
End of changes. 50 change blocks. | ||||
219 lines changed or deleted | 160 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |