RFC 4288

Media Type Specifications and Registration Procedures

๐Ÿ“… published December 2005, from ietf

RFC 4288: Media Type Specifications and Registration Procedures ๐ŸŽ€

Okay bestie, let's get into it ๐ŸŒธ This is RFC 4288, a Best Current Practice (it's BCP 13 ๐Ÿ’…), and the title is Media Type Specifications and Registration Procedures. It came out in December 2005 from the Network Working Group. The authors are N. Freed of Sun Microsystems and J. Klensin ๐Ÿ‘‘ It Obsoletes: 2048, so it replaces RFC 2048 as the go-to. It doesn't update anything else.

Status of This Memo โœจ

This document specifies an Internet Best Current Practice for the Internet Community ๐ŸŒˆ It also asks everyone to chat about it and send suggestions for improvements ๐Ÿ’ฌ Distribution of this memo is unlimited, so share it with whoever ๐Ÿซถ

Copyright (C) The Internet Society (2005).

Abstract ๐Ÿฆ‹

This doc lays out how to specify and register media types ๐Ÿ’– They're for use in MIME and other Internet protocols, so it's kind of the rulebook for labeling stuff โœจ

Table of Contents ๐Ÿ“š

1. Introduction ....................................................3
2. Media Type Registration Preliminaries ...........................4
3. Registration Trees and Subtype Names ............................4
   3.1. Standards Tree .............................................4
   3.2. Vendor Tree ................................................5
   3.3. Personal or Vanity Tree ....................................5
   3.4. Special x. Tree ............................................5
   3.5. Additional Registration Trees ..............................6
4. Registration Requirements .......................................6
   4.1. Functionality Requirement ..................................6
   4.2. Naming Requirements ........................................6
      4.2.1. Text Media Types ......................................7
      4.2.2. Image Media Types .....................................8
      4.2.3. Audio Media Types .....................................8
      4.2.4. Video Media Types .....................................8
      4.2.5. Application Media Types ...............................9
      4.2.6. Multipart and Message Media Types .....................9
      4.2.7. Additional Top-level Types ............................9
   4.3. Parameter Requirements ....................................10
   4.4. Canonicalization and Format Requirements ..................10
   4.5. Interchange Recommendations ...............................11
   4.6. Security Requirements .....................................11
   4.7. Requirements specific to XML media types ..................13
   4.8. Encoding Requirements .....................................13
   4.9. Usage and Implementation Non-requirements .................13
   4.10. Publication Requirements .................................14
   4.11. Additional Information ...................................15
5. Registration Procedure .........................................15
   5.1. Preliminary Community Review ..............................16
   5.2. IESG Approval .............................................16
   5.3. IANA Registration .........................................16
   5.4. Media Types Reviewer ......................................16
6. Comments on Media Type Registrations ...........................17
7. Location of Registered Media Type List .........................17
8. IANA Procedures for Registering Media Types ....................17
9. Change Procedures ..............................................18
10. Registration Template .........................................19
11. Security Considerations .......................................20
12. IANA Considerations ...........................................20
13. Acknowledgements ..............................................20
14. References ....................................................20
Appendix A.  Grandfathered Media Types ............................22
Appendix B.  Changes Since RFC 2048 ...............................22

1. Introduction ๐Ÿงš

Recent Internet protocols were designed to be super extensible in certain areas ๐Ÿ”ฅ Lots of them, MIME [RFC2045] included (but not limited to it), can carry arbitrary labeled content ๐Ÿ“ So we need a way to label that content, plus a registration process for those labels. That way the whole set of values gets developed in an orderly, well-specified, and public way ๐Ÿ“‹

This document defines media type specification and registration procedures that use the Internet Assigned Numbers Authority (IANA) as a central registry ๐Ÿ›๏ธ

Historical Note ๐Ÿ•ฐ๏ธ

Okay, history time ๐Ÿ“œ The media type registration process was first defined for the asynchronous Internet mail environment. In that mail world, there's a need to limit how many media types exist, so interoperability is more likely when you don't know what the remote mail system can handle ๐Ÿ™ˆ But once media types started being used in new environments where having lots of them wasn't a hindrance to interoperability, the original procedure turned out to be excessively restrictive and had to be generalized. This was first done in [RFC2048], but the procedure there was still part of the MIME document set. Now the media type specification and registration procedure has its own separate document, to make it clear that it's independent of MIME ๐Ÿ’œ

It may be desirable to restrict the use of media types to specific environments, or to prohibit their use in other environments. This revision attempts, for the first time, to build such restrictions into media type registrations in a systematic way ๐ŸŽฏ See Section 4.9 for additional discussion.

1.1. Conventions Used in This Document ๐Ÿ“

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

This specification makes use of the Augmented Backus-Naur Form (ABNF) [RFC4234] notation, including the core rules defined in Appendix A of that document ๐ŸŒธ

2. Media Type Registration Preliminaries ๐Ÿ“ฎ

Registering a new media type (or types) starts with building a registration proposal โœ๏ธ Registration can happen within several different registration trees, and those trees have different requirements, as we'll see below. In general, a new registration proposal gets circulated and reviewed in a way that fits the tree it's in. If the proposal is acceptable, the media type gets registered ๐ŸŽ‰ The following sections describe the requirements and procedures for each of the different registration trees.

3. Registration Trees and Subtype Names ๐ŸŒณ

To make the registration process more efficient and flexible, different structures of subtype names can be registered to match different natural needs ๐Ÿฆ‹ For example, you might have a subtype that's recommended for wide support across the Internet community, or one that's used to move files tied to proprietary software. The subsections below define registration "trees" that are told apart by faceted names, like names of the form "tree.subtree...subtype" ๐Ÿงฉ Some media types defined before this document don't follow these naming conventions, so check out Appendix A if you're curious about those ๐Ÿ‘€

3.1. Standards Tree ๐Ÿ†

The standards tree is for types of general interest to the Internet community ๐ŸŒ Registrations in the standards tree MUST be approved by the IESG and MUST correspond to a formal publication by a recognized standards body ๐Ÿ‘‘ For registration done for the IETF itself, the registration proposal MUST be published as an RFC ๐Ÿ“„ Standards-tree registration RFCs can either be standalone "registration only" RFCs, or they can be folded into a more general specification of some sort โœจ

Media types in the standards tree are normally named without explicit facets, which means their names don't contain period (".", full stop) characters ๐Ÿ’…

The "owner" of a standards tree registration is assumed to be the standards body itself ๐Ÿข Changing or altering the specification takes the same level of processing (e.g., standards track) as the initial registration did ๐Ÿ”

3.2. Vendor Tree ๐Ÿ›๏ธ

The vendor tree is for media types tied to commercially available products. "Vendor" or "producer" are treated as equivalent and very broadly in this context ๐Ÿ’ผ

Anyone who needs to interchange files for a particular product can place a registration in the vendor tree ๐Ÿซถ But the registration formally belongs to the vendor or organization that produces the software or file format being registered. Changes to the specification will be made at their request, as discussed in later sections ๐Ÿ’–

Vendor tree registrations are marked by the leading facet "vnd." ๐ŸŒˆ After that, the registrant decides whether to use a media subtype name from a well-known producer (e.g., "vnd.mudpie") or an IANA-approved designation of the producer's name followed by a media type or product designation (e.g., vnd.bigcompany.funnypictures) ๐Ÿญ

Public exposure and review of media types to be registered in the vendor tree is not required ๐Ÿ™Œ Still, using the ietf-types@iana.org mailing list for review is strongly encouraged, since it improves the quality of those specifications โœจ Vendor tree registrations may be submitted directly to the IANA ๐Ÿ›๏ธ

3.3. Personal or Vanity Tree ๐Ÿ’…

Media types created experimentally, or as part of products that aren't distributed commercially, can be registered in the personal or vanity tree ๐Ÿง These are marked by the leading facet "prs." ๐ŸŽ€

The owner of "personal" registrations and their associated specifications is the person or entity who made the registration, or someone that responsibility was transferred to as described below ๐Ÿชž

Public exposure and review of media types to be registered in the personal tree is not required ๐Ÿ™Œ But using the ietf-types list for review is strongly encouraged, because it improves the quality of those specifications ๐Ÿ’œ Personal tree registrations may be submitted directly to the IANA ๐Ÿ›๏ธ

3.4. Special x. Tree ๐Ÿฆ„

For convenience and symmetry with this registration scheme, subtype names with "x." as the first facet can be used for the same purposes that names starting with "x-" are used for ๐Ÿงš These types are unregistered and experimental, and they're only for use with the active agreement of the parties exchanging them ๐Ÿค

Here's the tea ๐Ÿต With the simplified registration procedures described above for the vendor and personal trees, it should rarely, if ever, be necessary to use unregistered experimental types. Therefore, using both the "x-" and "x." forms is discouraged ๐Ÿ™…โ€โ™€๏ธ

Types in this tree MUST NOT be registered ๐Ÿšซ


To be continued... Part 2 is coming next, bestie ๐Ÿ’–๐Ÿฆ‹

3.5. Additional Registration Trees ๐ŸŒˆ

okay so from time to time, when the community actually needs it, IANA can (with the advice and consent of the IESG ๐Ÿ’…) create brand new top-level registration trees. ๐Ÿฆ‹ it's explicitly assumed these trees could be handed over for outside registration and management to well-known permanent bodies. like, scientific societies could register media types for the sciences they cover ๐Ÿงช ngl that's iconic. the review quality for specs in one of these extra trees is expected to be on par with the standards tree โœจ and whenever a new tree is set up, it gets announced through an RFC publication that the IESG approves ๐Ÿ“ฃ

4. Registration Requirements ๐ŸŽ€

bestie, every media type registration proposal is expected to follow the various requirements in the sections below ๐Ÿ’– just know that the specifics can shift depending on which registration tree you're in, and the following sections spell that out too ๐Ÿงš

4.1. Functionality Requirement ๐Ÿ’…

media types MUST function as an actual media format ๐Ÿ”ฅ registering things that are better thought of as a transfer encoding, a charset, or a bunch of separate entities of another type is not allowed ๐Ÿ™…โ€โ™€๏ธ for example, there are apps that can decode the base64 transfer encoding [RFC2045], but base64 cannot be registered as a media type ๐Ÿ’€

this requirement applies no matter which registration tree is involved ๐ŸŒธ

4.2. Naming Requirements ๐Ÿฆ‹

all registered media types MUST be assigned type and subtype names ๐Ÿ’– the combo of those names is what uniquely identifies the media type, and the format of the subtype name tells you which registration tree it lives in ๐ŸŒณ both type and subtype names are case-insensitive, so no drama there โœจ

type and subtype names beginning with "X-" are reserved for experimental use and MUST NOT be registered ๐Ÿ™ˆ this mirrors the restriction on the x. tree, which we talked about in Section 3.4 ๐Ÿซถ

type and subtype names MUST conform to the following ABNF:

    type-name = reg-name
    subtype-name = reg-name

    reg-name = 1*127reg-name-chars
    reg-name-chars = ALPHA / DIGIT / "!" /
                    "#" / "$" / "&" / "." /
                    "+" / "-" / "^" / "_"

note that this syntax is a bit stricter than what [RFC2045] allows in its ABNF ๐Ÿง

okay this part is important: following the rules in [RFC3023], media subtypes that do NOT represent XML entities MUST NOT be given a name ending with the "+xml" suffix ๐Ÿšซ more generally, "+suffix" constructs should be used with care, because future suffix definitions could clash with them ๐Ÿ˜ฌ

while one media type can be given more than one name, using different names for the same media type is discouraged ๐Ÿ™…โ€โ™€๏ธ

these requirements apply no matter which registration tree is involved ๐Ÿ’œ

the choice of top-level type name MUST take the nature of the media type into account ๐Ÿ‘‘ new subtypes of top-level types MUST conform to that top-level type's restrictions, if it has any ๐Ÿ“ the next sections walk through each of the initial top-level types and their restrictions ๐Ÿงš also, various protocols, including but not limited to MIME, MAY impose extra restrictions on the media types they can carry (see [RFC2046] for more on the restrictions MIME imposes) ๐Ÿ“ฌ

4.2.1. Text Media Types ๐Ÿ“

the "text" media type is meant for stuff that's mainly textual ๐Ÿ’• a "charset" parameter MAY be used to say which charset the body text uses for "text" subtypes, and that includes "text/plain", the generic plain-text subtype defined in [RFC2046] ๐ŸŒท if a text "charset" parameter is defined, it MUST name a charset that's defined following the procedures in [RFC2978] โœ…

plain text doesn't do formatting commands, font attributes, processing instructions, interpretation directives, or content markup ๐Ÿ™…โ€โ™€๏ธ it's just a linear sequence of characters, maybe broken up by line breaks or page breaks ๐Ÿ“„ plain text MAY allow stacking several characters in the same position ๐ŸŒ€ and plain text in scripts like Arabic and Hebrew may also have facilities for mixing text segments that run in opposite writing directions โ†”๏ธ

beyond plain text, there are tons of formats for "rich text" ๐Ÿ’… what's interesting is that a lot of them are kinda readable even without the software that interprets them ๐Ÿ‘€ so it's useful to split them out at the highest level from stuff like images, audio, or text in an unreadable form ๐Ÿงฉ without the right interpretation software, it's reasonable to show "text" subtypes to the user, but it's NOT reasonable to do that with most non-textual data ๐Ÿ™ˆ formatted textual data should be represented using subtypes of "text" ๐ŸŽ€

4.2.2. Image Media Types ๐Ÿ–ผ๏ธ

a media type of "image" means the content specifies one or more separate images that need appropriate hardware to display ๐ŸŒˆ the subtype names the specific image format โœจ

4.2.3. Audio Media Types ๐ŸŽง

a media type of "audio" means the content contains audio data ๐ŸŽถ

4.2.4. Video Media Types ๐ŸŽฌ

a media type of "video" means the content specifies a time-varying picture image, possibly with color and coordinated sound ๐Ÿฟ "video" is used in its most generic sense, not tied to any particular technology or format, and it isn't meant to rule out subtypes like compactly encoded animated drawings ๐Ÿฆ‹

ngl, this doc really discourages mixing multiple media in a single body ๐Ÿ™…โ€โ™€๏ธ but it's recognized that a lot of so-called video formats include a representation for synchronized audio and/or text, and that's explicitly allowed for "video" subtypes ๐Ÿซถ

4.2.5. Application Media Types ๐Ÿ’ป

the "application" media type is for discrete data that doesn't fit any of the other media types, especially data meant to be processed by some kind of application program ๐Ÿง  this is info an application has to process before a user can view or use it ๐Ÿ“Š expected uses include (but aren't limited to) file transfer, spreadsheets, presentations, scheduling data, and languages for "active" (computational) material ๐Ÿ”ฅ (the last one is a big deal because it can pose security problems that implementors need to understand, and it's covered in detail in the discussion of the "application/PostScript" media type in [RFC2046] ๐Ÿ”)

for example, a meeting scheduler might define a standard way to represent info about proposed meeting dates ๐Ÿ“… an intelligent user agent could use that info to have a little chat with the user, then maybe send more stuff based on that convo ๐Ÿ’ฌ there have also been several "active" languages where programs get shipped to a remote location and auto-run in the recipient's environment ๐Ÿค– those can be defined as subtypes of "application" ๐Ÿ’–

the subtype of "application" is often the name, or part of the name, of the application the data is meant for ๐ŸŽฏ but that does NOT mean any application program name can be used freely as a subtype of "application" ๐Ÿ™…โ€โ™€๏ธ

4.2.6. Multipart and Message Media Types ๐Ÿ“ฆ

multipart and message are composite types, which means they're a way to wrap up zero or more objects, each labeled with its own media type ๐ŸŽ

all subtypes of multipart and message MUST conform to the syntax rules and other requirements in [RFC2046] ๐Ÿ“œ

4.2.7. Additional Top-level Types ๐ŸŒŸ

sometimes a new media type doesn't "fit" under any currently defined top-level content type ๐Ÿคทโ€โ™€๏ธ that's expected to be super rare ๐Ÿ˜ญ but if it does happen, a new top-level type can be defined to accommodate it ๐Ÿ™Œ that definition MUST be done via a standards-track RFC, and no other mechanism can be used to define additional top-level content types ๐Ÿšซ

4.3. Parameter Requirements ๐ŸŽ€

media types MAY choose to use one or more media type parameters ๐Ÿ’– or some parameters might be automatically available to the media type just by being a subtype of a content type that defines a set of parameters for any of its subtypes ๐Ÿงš either way, the names, values, and meanings of any parameters MUST be fully specified when the media type is registered in the standards tree, and SHOULD be specified as completely as possible when media types are registered in the vendor or personal trees ๐Ÿ“‹

parameter names follow the same syntax as media type names and values:

    parameter-name = reg-name

note that this syntax is a bit stricter than what [RFC2045] allows, and it's amended by [RFC2231] too ๐Ÿง

there's no defined syntax for parameter values ๐Ÿคทโ€โ™€๏ธ so registrations MUST specify parameter value syntax ๐Ÿ“ some transports also impose restrictions on parameter value syntax, so take care to limit the use of potentially problematic syntaxes ๐Ÿง  e.g., pure binary valued parameters are permitted in some protocols, but they probably should be avoided ๐Ÿ™…โ€โ™€๏ธ

new parameters SHOULD NOT be defined as a way to add new functionality to types registered in the standards tree ๐Ÿšซ however, new parameters MAY be added to convey extra info that doesn't otherwise change existing functionality ๐Ÿ’ก an example is a "revision" parameter that indicates a revision level of an external spec like JPEG ๐Ÿ“ท similar behavior is encouraged for media types in the vendor or personal trees, but it isn't required ๐ŸŒธ

4.4. Canonicalization and Format Requirements ๐Ÿ“

all registered media types MUST use a single, canonical data format, no matter which registration tree they're in ๐Ÿ”’

a precise and openly available spec of each media type's format MUST exist for all types registered in the standards tree ๐Ÿ“– it MUST, at a minimum, be referenced by the media type registration proposal itself, even if it isn't actually included in it ๐Ÿ”—

the format and processing specs for media types in the vendor tree may or may not be publicly available, and those registration proposals are explicitly allowed to limit the spec to which software and version produce or process such media types ๐Ÿข referencing or including format specs in registration proposals is encouraged but NOT required ๐Ÿ’…

format specs are still required for registration in the personal tree ๐Ÿซถ but they may be published as RFCs or otherwise deposited with IANA ๐Ÿ“ฌ the deposited specs will meet the same criteria as those required to register a well-known TCP port and, in particular, don't need to be made public ๐Ÿคซ

some media types involve patented technology ๐Ÿ’ฐ registering media types involving patented technology is specifically permitted โœ… however, the restrictions set forth in [RFC2026] on using patented technology in IETF standards-track protocols must be respected when a media type's spec is part of a standards-track protocol โš–๏ธ also, other standards bodies that use the standards tree may have their own IP rules that must be observed in their registrations ๐ŸŒˆ

4.5. Interchange Recommendations ๐ŸŒธ

okay bestie, media types SHOULD interoperate across as many systems and apps as possible ๐Ÿ’– but ngl some of them are gonna beef across platforms no matter what. Different versions, byte ordering, and the specifics of gateway handling can and will cause problems ๐Ÿ˜ญ

Universal interoperability is not required ๐Ÿ™ˆ, but known interoperability issues SHOULD be identified whenever possible โœจ. Publishing a media type doesn't need an exhaustive interop review, and the interoperability considerations section keeps getting re-evaluated over time ๐Ÿฆ‹.

These recommendations apply regardless of which registration tree is involved ๐Ÿ’….

4.6. Security Requirements ๐Ÿ”

an analysis of security issues MUST be done for every type registered in the standards tree ๐Ÿ‘‘. A similar analysis for types in the vendor or personal trees is encouraged, but it's not required. Either way, all descriptions of security issues MUST be as accurate as possible, no matter the tree ๐Ÿ’ฏ. Also, 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" ๐Ÿ™ƒ. Those are two very different vibes!!

there's absolutely no requirement that media types be secure or totally risk-free ๐Ÿซถ. Still, all known security risks MUST be identified in the registration of a media type, again regardless of tree ๐Ÿšจ.

the security considerations section of every registration is subject to continuing evaluation and modification, and it MAY be extended through the "comments on media types" mechanism described in Section 6 below ๐ŸŒˆ.

some of the things you should look at in a security analysis of a media type:

  • complex media types may include directives that carry out actions on a recipient's files or other resources. often they let the originator specify arbitrary actions with no restrictions, which can have devastating effects ๐Ÿ’€. See the registration of the application/postscript media type in [RFC2046] for an example of these directives and how they should be described in a registration.
  • ALL registrations MUST state whether or not they use this kind of "active content" ๐Ÿงจ. If they do, they MUST state what steps were taken to protect users of the media type from harm ๐Ÿ›ก๏ธ.
  • complex media types may also include directives that carry out actions which aren't directly harmful to the recipient, but could still disclose information that helps a later attack or violates a recipient's privacy ๐Ÿ•ต๏ธ. Once again, the registration of the application/postscript media type shows how these can be handled.
  • a media type that uses compression may give an attacker a way to send a small amount of data that, once received and evaluated, expands enormously and eats all of the recipient's resources ๐Ÿฟ. All media types SHOULD state whether or not they use compression, and if they do, they should discuss what steps need to be taken to avoid these attacks.
  • a media type might be aimed at applications that need some kind of security assurance but don't provide the necessary security mechanisms themselves ๐Ÿคทโ€โ™€๏ธ. For example, a media type could be defined for storing confidential medical information that depends on an external confidentiality service, or that is designed for use only inside a secure environment.

4.7. Requirements specific to XML media types ๐Ÿ“œ

there are a bunch of extra requirements that only apply when registering XML media types ๐Ÿงก. Those are specified in [RFC3023].

4.8. Encoding Requirements ๐Ÿ”ค

some transports restrict what kinds of data they can carry. For example, internet mail used to be limited to 7bit US-ASCII text ๐Ÿ“ง. Encoding schemes are often used to get around these transport limits ๐ŸŽ.

So it's useful to note, as part of a registration, what sort of data a media type can consist of. There's an "encoding considerations" field just for this ๐Ÿ“. The possible values of this field are:

  • 7bit: the content consists solely of CRLF-delimited 7bit US-ASCII text.
  • 8bit: the content consists solely of CRLF-delimited 8bit text.
  • binary: the content consists of an unrestricted sequence of octets.
  • framed: the content consists of a series of frames or packets with no internal framing or alignment indicators ๐Ÿงฉ. Extra out-of-band information is needed to interpret the data properly, including (but not necessarily limited to) knowing where the boundaries between successive frames are and knowing the transport mechanism. Be careful with this one: media types like this can't just be stored in a file or sent as a simple stream of octets, so they're unsuitable for lots of traditional protocols ๐Ÿšซ. A commonly used transport with framed encoding is the Real-time Transport Protocol, RTP. Additional rules for framed encodings used with RTP are given in [RFC3555].

Additional restrictions on 7bit and 8bit text are given in [RFC2046].

4.9. Usage and Implementation Non-requirements ๐Ÿ™…โ€โ™€๏ธ

in asynchronous mail, the sender often has no idea what the remote mail agent can handle ๐Ÿ“ฌ. Back then, the way to get maximum interoperability was to stick to "common" formats that were expected to be widely implemented ๐Ÿ™„. People assumed that meant capping how many media types could exist, and that made registration a whole process with a big hurdle and lots of delay ๐Ÿ˜ฉ.

but needing "common" media types doesn't mean you have to limit new registrations ๐Ÿ’ซ. If a small set of media types is recommended for a particular application, that should be stated in a separate applicability statement written for that application and/or environment ๐Ÿ“‹.

So universal support and implementation of a media type is NOT a requirement for registration ๐ŸŒŸ. However, if a media type is explicitly meant for limited use, this MUST be noted in its registration ๐Ÿšง. The "Restrictions on Usage" field exists for exactly that purpose.

4.10. Publication Requirements ๐Ÿ“š

proposals for media types registered in the standards tree by the IETF itself MUST be published as RFCs ๐ŸŽ“. RFC publication for vendor and personal media type proposals is encouraged but not required. In every case, the IANA keeps copies of all media type proposals and "publishes" them as part of the media types registration tree itself ๐Ÿ—‚๏ธ.

as mentioned before, standards tree registrations for media types defined in documents produced by other standards bodies MUST be described by a formal standards specification from that body ๐Ÿ›๏ธ. Those specifications MUST contain an appropriate media type registration template taken from Section 10 ๐Ÿ’…. On top of that, the copyright on the registration template MUST allow the IANA to copy it into the IANA registry ๐Ÿ”“.

apart from IETF registrations in the standards tree, registering a data type doesn't mean the IANA or the IETF endorses, approves, or recommends it. It doesn't even certify that the specification is adequate ๐Ÿ™…โ€โ™€๏ธ. To become Internet Standards, a protocol or data object has to go through the IETF standards process, but that's way too difficult and lengthy for convenient media type registration ๐Ÿข.

the standards tree is for media types that do need a substantive review and approval process in a recognized standards body ๐Ÿง. The vendor and personal trees are for media types that don't need that process ๐ŸŒท. It's expected that applicability statements for particular applications will be published in the IETF from time to time, recommending implementation of, and support for, media types that have proven especially useful in those contexts ๐Ÿฆ‹.

As discussed above, registering a top-level type requires standards-track processing in the IETF and, therefore, RFC publication ๐ŸŽ€.

4.11. Additional Information โœจ

all kinds of optional info SHOULD be included in the specification of a media type if it's available ๐ŸŒˆ:

  • magic number(s) (length, octet values). Magic numbers are byte sequences that are always present at a given place in a file, so they can be used to identify entities as being a given media type ๐Ÿ”.
  • file name extension(s) commonly used on one or more platforms to indicate that a file contains a given media type ๐Ÿ“.
  • Mac OS File Type code(s) (4 octets) used to label files containing a given media type ๐ŸŽ.
  • information about how fragment/anchor identifiers [RFC3986] are constructed for use with this media type ๐Ÿ”—.

For a registration in the standards tree, this additional information MAY be provided in the formal specification of the media type ๐Ÿงพ. It's suggested that you do this by putting the IANA media type registration form right into the specification itself ๐Ÿ’œ.

5. Registration Procedure ๐Ÿšฆ

the media type registration procedure isn't a formal standards process ๐Ÿ™Œ. It's more of an administrative procedure meant to allow community comments and sanity checks without a ton of delay โฐ.

the normal IETF processes should be followed for all IETF registrations in the standards tree ๐Ÿƒโ€โ™€๏ธ. Posting an Internet Draft is a necessary first step, followed by posting to the ietf-types@iana.org list as discussed below ๐Ÿ“ฎ.

Registrations in the vendor and personal trees should be submitted directly to the IANA, ideally after first posting to the ietf-types@iana.org list for review ๐Ÿ’Œ.

Proposed registrations in the standards tree by other standards bodies should be communicated to the IESG (at iesg@ietf.org) and to the ietf-types list (at ietf-types@iana.org) ๐Ÿ“ฃ. Posting as an Internet Draft beforehand is not required for these, but it may be helpful to the IESG and is encouraged ๐Ÿซถ.

5.1. Preliminary Community Review ๐Ÿ‘€

notice of a potential media type registration in the standards tree MUST be sent to the "ietf-types@iana.org" mailing list for review ๐Ÿ“ฌ. That list was set up specifically to review proposed media and access types ๐Ÿงš. Registrations in other trees MAY be sent to the list for review too ๐Ÿ’–.

posting to the list is meant to gather comments and feedback on the choice of type/subtype name, whether the references are unambiguous with respect to versions and external profiling information, and to review any interoperability or security considerations ๐Ÿ”Ž. The submitter can submit a revised registration or abandon the registration completely at any time ๐Ÿซ .

5.2. IESG Approval ๐Ÿ

media types registered in the standards tree MUST be approved by the IESG prior to registration ๐Ÿ‘‘โœจ.

5.3. IANA Registration โœจ

Once the media type meets every relevant requirement and has collected whatever approval it needs, the author can send the registration request to the IANA ๐Ÿ’Œ Requests can go to iana@iana.org, or you can use the web form if clicking is more your thing:

http://www.iana.org/cgi-bin/mediatypes.pl

Heads up, bestie ๐Ÿ™…โ€โ™€๏ธ sending to ietf-types@iana.org does not count as submitting the registration to the IANA. That list is for discussion, not submission.

When the registration is part of an RFC publication request, or a registration in the standards tree that goes to the IESG, the IANA and the IESG are so tight that IESG approval actually submits it to the IANA for you ๐Ÿค No extra registration request needed, periodt.

5.4. Media Types Reviewer ๐Ÿ‘ฉโ€๐Ÿ’ป

Registrations sent to the IANA get passed to the media types reviewer ๐ŸŽ€ This person is appointed by the IETF Applications Area Director(s), and their job is to check that the registration meets the requirements in this document.

If a registration doesn't pass, it gets sent back to the submitter for revision. No shade, just edits ๐Ÿ’…

Decisions made by the media types reviewer can be appealed to the IESG using the procedure specified in [RFC2026] section 6.5.4.

Once a media type registration passes review, the IANA registers it and makes it available to the community ๐ŸŽ‰

6. Comments on Media Type Registrations ๐Ÿ’ฌ

Community members can submit comments on registered media types to the IANA. The media types reviewer looks them over and then passes them on to the "owner" of the media type if possible ๐Ÿซถ Commenters can ask for their comment to be attached to the media type registration itself. If the IANA approves, the comment becomes accessible alongside the type registration ๐Ÿงพ

7. Location of Registered Media Type List ๐Ÿ“

The IANA lists media type registrations at:

http://www.iana.org/assignments/media-types/

8. IANA Procedures for Registering Media Types ๐Ÿ› ๏ธ

The IANA will only register media types in the standards tree in response to a communication from the IESG stating that a given registration has been approved. Vendor and personal types get registered by the IANA automatically, with no formal approval process, as long as the following minimal conditions are met:

  • Media types MUST function as an actual media format. In particular, charsets and transfer encodings MUST NOT be registered as media types.
  • All media types MUST have properly formed type and subtype names. All type names MUST be defined by a standards-track RFC. All type/subtype name pairs MUST be unique and MUST contain the proper tree prefix.
  • Types registered in the personal tree MUST either provide a format specification or a pointer to one.
  • All media types MUST have a reasonable security considerations section. (It is neither possible nor necessary for the IANA to conduct a comprehensive security review of media type registrations. Nevertheless, the IANA has the authority to identify obviously incompetent material and return it to the submitter for revision.)

Registrations in the standards tree MUST satisfy the additional requirement that they originate from the IETF itself or from another standards body recognized as such by the IETF ๐Ÿ›๏ธ

9. Change Procedures ๐Ÿ”„

Once the IANA has published a media type, the owner can request a change to its definition. The descriptions of the different registration trees above say who the "owners" are for each type of registration ๐Ÿ‘‘ The same procedure that would fit the original registration request gets used to process a change request.

Changes 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 makes entities that were valid under the previous definition invalid under the new definition.

The owner of a media type can pass responsibility to another person or agency by informing the IANA and the ietf-types list. This can be done without discussion or review, so easy ๐Ÿฆ‹

The IESG may reassign responsibility for a media type. The most common case will be when the registration's author has died, moved out of contact, or is otherwise unable to make changes that matter to the community ๐Ÿ•Š๏ธ

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, and such media types will be clearly marked in the lists published by the IANA ๐Ÿชฆ

10. Registration Template ๐Ÿ“

Here's the template, exactly as it's meant to be filled in:

To: ietf-types@iana.org
Subject: Registration of media type XXX/YYY

Type name:

Subtype name:

Required parameters:

Optional parameters:

Encoding considerations:

Security considerations:

Interoperability considerations:

Published specification:

Applications that use this media type:

Additional information:

  Magic number(s):
  File extension(s):
  Macintosh file type code(s):

Person & 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:

(Any other information that the author deems interesting may be added
below this line.)

Some discussion of Macintosh file type codes and their purpose can be found in [MacOSFileTypes]. Also, please refrain from writing "none" or anything similar when no file extension or Macintosh file type is specified, lest "none" be confused with an actual code value ๐Ÿ™ˆ

11. Security Considerations ๐Ÿ”

Security requirements for media type registrations are discussed in Section 4.6. Read it, bestie, it's serious business ๐Ÿ˜ญ

12. IANA Considerations ๐ŸŒท

The purpose of this document is to define IANA registries for media types.

13. Acknowledgements ๐Ÿ™

The current authors want 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 [RFC2048]. The authors hope the current version is one he would have agreed with. But since it's impossible to verify that agreement, they regretfully removed his name as a co-author ๐Ÿ•ฏ๏ธ

14. References ๐Ÿ“š

14.1. Normative References

  • [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996.
  • [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, November 1996.
  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC2978] Freed, N. and J. Postel, "IANA Charset Registration Procedures", BCP 19, RFC 2978, October 2000.
  • [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001.
  • [RFC3555] Casner, S. and P. Hoschka, "MIME Type Registration of RTP Payload Formats", RFC 3555, July 2003.
  • [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005.
  • [RFC4234] Crocker, D. Ed., and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 4234, October 2005.

14.2. Informative References

  • [MacOSFileTypes] Apple Computer, Inc., "Mac OS: File Type and Creator Codes, and File Formats", Apple Knowledge Base Article 55381, June 1993, <http://www.info.apple.com/kbnum/n55381>.
  • [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996.
  • [RFC2048] Freed, N., Klensin, J., and J. Postel, "Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures", BCP 13, RFC 2048, November 1996.
  • [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations", RFC 2231, November 1997.

Appendix A. Grandfathered Media Types ๐Ÿ‘ต

A number of media types registered before 1996 would, if registered under the guidelines in this document, be placed into either the vendor or personal trees. Reregistering those types to reflect the appropriate trees is encouraged but not required. The ownership and change control principles outlined in this document apply to those types as if they had been registered in the trees described above ๐Ÿ“

Appendix B. Changes Since RFC 2048 ๐Ÿ†•

  • Media type specification and registration procedures have been moved out of the MIME document set to this separate specification.
  • The various URLs and addresses in this document have been changed so they all refer to iana.org rather than isi.edu. Additionally, many of the URLs have been changed to use HTTP; formerly they used FTP.
  • Much of the document has been clarified in the light of operational experience with these procedures.
  • The unfaceted IETF tree is now called the standards tree, and the registration rules for this tree have been relaxed to allow use by other standards bodies.
  • The text describing the media type registration procedure has been clarified.
  • The rules and requirements for constructing security considerations sections have been extended and clarified.
  • RFC 3023 is now referenced as the source of additional information concerning the registration of XML media types.
  • Several of the references in this document have been updated to refer to current versions of the relevant specifications.
  • A note has been added discouraging the assignment of multiple names to a single media type.
  • Security considerations and IANA considerations sections have been added.
  • Concerns regarding copyrights on media type registration templates produced by other standards bodies have been dealt with by requiring that the IANA be allowed to copy the registration template into the registry.
  • The basic registration requirements for the various top-level types have been moved from RFC 2046 to this document.
  • A syntax is now specified for media type, subtype, and parameter names.
  • Imposed a maximum length of 127 on all media type and subtype names.
  • A note has been added to caution against excessive use of "+suffix" constructs in subtype names.
  • The encoding considerations field has been extended to allow the value "framed".
  • A reference describing Macintosh Type codes has been added.
  • Ietf-types list review of registrations in the standards tree is now required rather than just recommended.

Authors' Addresses ๐ŸŽ€

okay so here's where you can find the two legends who wrote this spec ๐Ÿซถ bestie, save these ๐Ÿ’…

Ned Freed
Sun Microsystems
3401 Centrelake Drive, Suite 410
Ontario, CA  92761-1205
USA

Phone: +1 909 457 4293
EMail: ned.freed@mrochek.com


John C. Klensin
1770 Massachusetts Ave, #322
Cambridge, MA  02140

EMail: klensin+ietf@jck.com

Copyright (C) The Internet Society (2005). โœจ

ngl this part is the legal stuff, but it's giving clarity ๐Ÿ’… The document is covered by the rights, licenses, and restrictions in BCP 78, and unless BCP 78 says otherwise, the authors keep all their own rights ๐Ÿ’œ

The document and everything in it is provided "AS IS" ๐Ÿ™ˆ The contributor, the organization they represent or are sponsored by (if any), the Internet Society, and the Internet Engineering Task Force all say there are no warranties at all, express or implied. That includes no promise that using the information won't infringe anyone's rights, and no implied warranties of merchantability or fitness for a particular purpose. Totally no guarantees, bestie ๐Ÿ’€


Intellectual Property ๐ŸŒธ

The IETF doesn't take a position on whether any Intellectual Property Rights (or other rights) that someone might claim over the technology in this document are valid or how far they reach. It also doesn't say whether licenses for those rights are available. And it hasn't independently tried to find any such rights either ๐Ÿงš Info on how rights work for RFC documents is in BCP 78 and BCP 79, so go check those if you're curious ๐Ÿ“

Copies of IPR disclosures sent to the IETF Secretariat are a thing, and so are any assurances of licenses that are offered. You can also find the results of anyone trying to get a general license or permission to use the proprietary rights, for implementers or users of this spec. All of that lives in the IETF online IPR repository at http://www.ietf.org/ipr โœจ

The IETF also invites anyone who knows about copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard to tell them. Send that info to ietf-ipr@ietf.org ๐Ÿ“ฌ (the address is split across a line break in the original, so it's ietf-ipr@ietf.org ๐Ÿ’–)


Acknowledgement ๐ŸŒˆ

Funding for the RFC Editor function is currently provided by the Internet Society ๐Ÿ‘‘ That's the end of the doc, bestie, you made it ๐Ÿ˜ญ๐Ÿซถ

๐Ÿ“ฆ where this page comes from