Network Working Group G. Klyne
Internet-Draft MIMEsweeper Group
Expires: July 5, 2002 Jan 4, 2002
Registration procedures for message headers
draft-klyne-msghdr-registry-01
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on July 5, 2002.
Copyright Notice
Copyright (C) The Internet Society (2002). All Rights Reserved.
Abstract
This specification defines registration procedures for the message
headers used by Internet mail, newsgroup feeds, HTTP and other
Internet applications.
Discussion of this document
Please send comments to <ietf-822@imc.org>. To subscribe to this
list, send a message with the body 'subscribe' to <ietf-822-
request@imc.org>.
Klyne Expires July 5, 2002 [Page 1]
Internet-Draft Message header registration Jan 2002
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Structure of this document . . . . . . . . . . . . . . . . . 3
1.2 Document terminology and conventions . . . . . . . . . . . . 4
2. Message headers . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Standard and non-standard headers . . . . . . . . . . . . . 4
2.2 Definitions of message headers . . . . . . . . . . . . . . . 5
2.2.1 Application-specific message headers . . . . . . . . . . . . 5
3. Registration procedure . . . . . . . . . . . . . . . . . . . 5
3.1 Header specification . . . . . . . . . . . . . . . . . . . . 6
3.2 Registration templates . . . . . . . . . . . . . . . . . . . 6
3.2.1 Normative header template . . . . . . . . . . . . . . . . . 6
3.2.2 Provisional header template . . . . . . . . . . . . . . . . 7
3.3 Submission of registration . . . . . . . . . . . . . . . . . 8
3.4 Change control . . . . . . . . . . . . . . . . . . . . . . . 8
3.5 Comments on header definitions . . . . . . . . . . . . . . . 8
3.6 Location of message header registry . . . . . . . . . . . . 9
4. Initial registrations . . . . . . . . . . . . . . . . . . . 9
5. IANA considerations . . . . . . . . . . . . . . . . . . . . 9
6. Security considerations . . . . . . . . . . . . . . . . . . 9
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9
References . . . . . . . . . . . . . . . . . . . . . . . . . 9
Author's Address . . . . . . . . . . . . . . . . . . . . . . 12
A. Revision history . . . . . . . . . . . . . . . . . . . . . . 12
A.1 draft-klyne-msghdr-registry-01 . . . . . . . . . . . . . . . 12
A.2 draft-klyne-msghdr-registry-00 . . . . . . . . . . . . . . . 12
B. Todo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Full Copyright Statement . . . . . . . . . . . . . . . . . . 14
Klyne Expires July 5, 2002 [Page 2]
Internet-Draft Message header registration Jan 2002
1. Introduction
This specification defines registration procedures for the message
headers used by Internet mail, newsgroup feeds, HTTP and other
Internet applications.
Benefits of a central registry for message headers include:
o to provide a single point of reference for standardized headers;
o to provide a central point of discovery for established headers,
and easy location of their defining documents;
o to discourage multiple definitions of a header name for different
purposes;
o to help those proposing new headers discern established trends and
conventions, and avoid names that might be confused with existing
ones;
o to encourage convergence of header name usage across multiple
applications/protocols.
The primary specification for Internet message headers is the
Internet mail message format specification, RFC 2822 [22], but there
are many other Internet standards track documents that define
additional headers within the same namespace, notably MIME [7] and
related specifications. Other Internet applications that use MIME,
such as newsgroup feeds (RFC 1036 [1]) and HTTP web access (RFC 2616
[19]), also use many of the same headers.
Although in principle each application defines its own set of valid
headers, exchange of messages between applications (e.g. mail to
news gateways), common use of MIME encapsulation, and the possibility
of common processing for various message types (e.g. a common
message archive and retrieval facility) makes it desirable to have a
single point of reference for standardized headers. The message
header registry defined here serves that purpose.
1.1 Structure of this document
Section Section 2 discusses the purpose of this specification, and
indicates some sources of information about defined message headers.
Section Section 3 defines the message header registry, and sets out
requirements and procedures for creating entries in it.
Klyne Expires July 5, 2002 [Page 3]
Internet-Draft Message header registration Jan 2002
1.2 Document terminology and conventions
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 RFC 2119 [10].
NOTE: indented comments like this provide additional nonessential
information about the rationale behind this document.
[[[Editorial comments and questions about outstanding issues are
provided in triple brackets like this. These working comments should
be resolved and removed prior to final publication.]]]
2. Message headers
2.1 Standard and non-standard headers
Many message headers are defined in standards-track documents, which
means they have been subjected to a process of community review and
achieved consensus that they provide a useful and well-founded
capability. Many other headers have been defined and adopted for
private use; some of these have found widespread use.
The registry defined here is intended to cater for all of these
headers, while maintaining a clear distinction and status for those
which have community consensus. To this end, the registry is defined
in two parts (or maybe as two separate registries):
o Normative Message Headers, intended for headers defined in IETF
standards-track documents, or those that have achieved a
comparable level of community review. The assignment policy for
such registration is "IETF Consensus", as defined by RFC 2434
[18].
o Provisional Message Headers, intended for any header proposed by
any developer, without making any claim about the usefulness
quality of its definition. The assignment policy for registration
of these is "Private Use", per RFC 2434 [18].
Note that there exist at least two other sources information about
message headers:
o RFC 2076 [8], as updated [25], contains a list of commonly used
message headers, and
o Dan Bernstein maintains a list of standard and non-standard mail
message headers [26].
Klyne Expires July 5, 2002 [Page 4]
Internet-Draft Message header registration Jan 2002
2.2 Definitions of message headers
RFC 2822 [22] defines a general syntax for Internet message headers.
It also defines a number of headers for use with Internet mail.
Additional header names are defined in a variety of standards-track
RFC documents, including: RFC 1036 [1], RFC 1496 [2], RFC 1505 [3],
RFC 1766 [5], RFC 1864 [6], RFC 2156 [12], RFC 2183 [13], RFC 2045
[7], RFC 2110 [9], RFC 2298 [14], RFC 2369 [15], RFC 2421 [17], RFC
2616 [19], RFC 2821 [21], RFC 2912 [23] and RFC 2919 [24].
2.2.1 Application-specific message headers
Internet applications that use message headers include Internet mail
[21][22], NNTP newsgroup feeds [1], HTTP web access [19] and any
other that uses MIME [7] encapsulation of message content.
In some cases (notably HTTP [19]), the header syntax and usage is
redefined for the specific application. This registration is
concerned only with the allocation and specification of header names,
and not with the details of header implementation in specific
protocols.
In some cases, the same header name may be specified differently (by
different documents) for use with different application protocols
[[[example?]]]. In other cases, a header name may have a common
specification across multiple protocols (ignoring protocol-specific
lexical and character set conventions); e.g. this is generally the
case for MIME headers with names of the form 'Content-*'.
Thus, we need to accommodate application-specific headers, while
recognizing the commonality of other headers across multiple
applications. Common registries are used for all applications, and
each registered header specifies the application protocol(s) for
which the registered definition applies. A given header name may
have multiple registry entries for different protocols; in the
Normative Message Headers registry, a given header name may be
registered only once for any given protocol.
3. Registration procedure
The procedure for registering a message header is:
1. Construct a header specification
2. Prepare a registration template
3. Submit the registration template
Klyne Expires July 5, 2002 [Page 5]
Internet-Draft Message header registration Jan 2002
3.1 Header specification
Registration of a new message header starts with construction of a
proposal that describes the syntax, semantics and intended use of the
header. This proposal MUST be published as an RFC.
A registered header name MUST conform at least to the syntax defined
by RFC 2822, section 3.6.8, for "field name".
Further, the "." character is reserved to indicate a naming sub-
structure and MUST NOT be included in any registered header name.
Currently, no specific sub-structure is defined; if used, any such
structure MUST be defined by a standards track RFC document.
It is further RECOMMENDED that characters in a registered message
header name are restricted to those characters that can be used
without escaping in a URI [16] or URN [11], namely upper- or lower-
case ASCII letters, decimal digits, "(", ")", "+", ",", "-", "=",
"@", ";", "$", "_", "!", "*" and "'". Of course, a header name must
also conform to any applicable rules of the protocol(s) with which it
may be used. Many headers names may find some use in conjunction
with XML, in which case the name characters should be further
restricted to just letters, digits, hyphen ('-') and underscore ('_')
characters, with the first character being a letter or underscore.
3.2 Registration templates
The registration template for a message header may be contained in
the defining document, or prepared separately.
3.2.1 Normative header template
An header registered as a Normative Message Header MUST be defined
according to "IETF Consensus" rules (per RFC 2434 [18]), and MUST
have a name which is unique among all the Normative Message Headers
that may be used with the same application protocol(s). The header
name MUST NOT start with "X-" or "x-".
The registration template contains the following information:
NORMATIVE HEADER REGISTRATION TEMPLATE:
Header name:
The name requested for the new header. This MUST conform to the
header specification details above.
Applicable protocol(s):
Specify "mail", "news", "http", or cite any other standards-track
Klyne Expires July 5, 2002 [Page 6]
Internet-Draft Message header registration Jan 2002
RFC defining the protocol with which the header is intended to be
used.
Alternatively, specify "any" to indicate that there is no
specified restriction on the protocol with which the registered
header may be used; in this case, the header name must be unique
within the Normative Message Header registry.
Specification document(s):
Reference to the RFC(s) that specify the header for use with the
indicated protocol(s).
Related information:
Optionally, citations to additional documents containing further
relevant information.
3.2.2 Provisional header template
Registration as a Provisional Message Header does not imply any kind
of endorsement by the IETF, IANA or any other body.
The only requirement for a header to be registered as a Provisional
Message Header is that it MUST have a citable specification.
The registration template contains the following information:
PROVISIONAL HEADER REGISTRATION TEMPLATE:
Header name:
The name requested for the new header. This SHOULD conform to the
header specification details above.
Applicable protocol(s):
Specify "mail", "news", "http", or cite any other standards-track
RFC defining the protocol with which the header is intended to be
used.
Alternatively, specify "any" to indicate that there is no
specified restriction on the protocol with which the registered
header may be used.
Specification document(s):
Reference to document(s) that specifies the header for use with
the indicated protocol(s).
Related information:
Optionally, citations to additional documents containing further
relevant information.
Klyne Expires July 5, 2002 [Page 7]
Internet-Draft Message header registration Jan 2002
The name and email address of the author, and person who may
authorize changes to or retraction of the registration.
3.3 Submission of registration
The registration is submitted for incorporation in the IANA message
header registry by one of the following means:
o An IANA considerations section in a defining RFC, calling for
registration of the message header and referencing the
registration template within the same document. Registration of
the header is processed as part of the RFC publication process.
o Sending the registration template in an email to the designated
email address [27]. IANA will register the message header if the
requested name and the specification document meet the criteria
stated.
3.4 Change control
Change control of a header registration is subject to the same
condition as the initial registration; i.e. publication of an IESG-
approved RFC for a Normative Message Header, or on request of the
indicated author/cgange controller for a Provisional Message Header.
In addition, retraction of Provisional Message Header registration
may be requested by the IESG.
It is intended that entries in the Normative Header Registry may be
used in the construction of URNs (per RFC 2141 [11]) which have
particular requirements for uniqueness and persistence (per RFC 1737
[4]). Therefore, once an entry is made in the Normative Message
Header registry, the combination of the header name and any
applicable protcol MUST NOT subsequently be registered for any other
purpose. (This is not to preclude revision of the applicable
specification(s) within the appropriate IETF Consensus rules, and
corresponding updates to the specification citation in the header
registration.)
3.5 Comments on header definitions
[[[Review this]]]
Comments on registered Normative Message Headers should be sent to
the IETF-822 email discussion list [27].
Klyne Expires July 5, 2002 [Page 8]
Internet-Draft Message header registration Jan 2002
Comments on proposed message headers should preferably be sent to the
discusion forum for the specification concerned. They may also be
sent to the IETF-822 list [27] if they concern wider implications
than are addressed by the specification document.
3.6 Location of message header registry
The message header registry is accessible from IANA's web site [28].
4. Initial registrations
[[[I am currently minded to prepare two companion documents that
template the normative and provisional headers from RFC 2076, rather
than try to have them all in this document.]]]
This specification calls for initial registration of all message
headers defined in existing standards-track documents. A list of
such headers can be found in RFC 2076 [8] and updates [25]. Section
Section 2.2 of this document contains a list of standards-track
specifications that define message headers.
[[[Need to provide list of headers+documents here for initial
registration?]]]
5. IANA considerations
This specification calls for:
o A new two-part IANA registry for message headers per section
Section 3 of this document. The policies for inclusion in the
registry are described in sections Section 3.1 and Section 3.2.
o [[[Details TBD: Initial message header registrations, per section
Section 4 of this document.]]]
6. Security considerations
No security considerations are introduced by this specification
beyond those already inherrent in the use of message headers.
7. Acknowledgements
The author gratefully acknowledges the contributions of: Charles
Lindsey, [[[...]]]
References
Klyne Expires July 5, 2002 [Page 9]
Internet-Draft Message header registration Jan 2002
[1] Horton, M. and R. Adams, "Standard for interchange of USENET
messages", RFC 1036, December 1987.
[2] Alvestrand, H., Jordan, K. and J. Romaguera, "Rules for
downgrading messages from X.400/88 to X.400/84 when MIME
content-types are present in the messages", RFC 1496, August
1993.
[3] Costanzo, A., Robinson, D. and R. Ullmann, "Encoding Header
Field for Internet Messages", RFC 1505, August 1993.
[4] Masinter, L. and K. Sollins, "Functional Requirements for
Uniform Resource Names", RFC 1737, December 1994.
[5] Alvestrand, H., "Tags for the Identification of Languages", RFC
1766, March 1995.
[6] Myers, J. and M. Rose, "The Content-MD5 Header Field", RFC
1864, October 1995.
[7] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Bodies",
RFC 2045, November 1996.
[8] Palme, J., "Common Internet Message Headers", RFC 2076,
February 1997.
[9] Palme, J. and A. Hopmann, "MIME E-mail Encapsulation of
Aggregate Documents, such as HTML (MHTML)", RFC 2110, March
1997.
[10] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[11] Moats, R., "URN Syntax", RFC 2141, May 1997.
[12] Kille, S., "MIXER (Mime Internet X.400 Enhanced Relay): Mapping
between X.400 and RFC 822/MIME", RFC 2156, January 1998.
[13] Moore, K., Troost, R. and S. Dorner, "Communicating
Presentation Information in Internet Messages: The Content-
Disposition Header Field", RFC 2183, August 1997.
[14] Fajman, R., "An Extensible Message Format for Message
Disposition Notifications", RFC 2298, March 1998.
[15] Baer, J. and G. Neufeld, "The Use of URLs as Meta-Syntax for
Core Mail List Commands and their Transport through Message
Klyne Expires July 5, 2002 [Page 10]
Internet-Draft Message header registration Jan 2002
Header Fields", RFC 2369, July 1998.
[16] Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform
Resource Identifiers (URI): Generic Syntax", RFC 2396, August
1998.
[17] Parsons, G. and G. Vaudreuil, "Voice Profile for Internet Mail
- version 2", RFC 2421, September 1998.
[18] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
Considerations Section in RFCs", BCP 26, RFC 2434, October
1998.
[19] Fielding, R., Gettys, J., Mogul, J., Nielsen, H., Masinter, L.,
Leach, P. and T. Berners-Lee, "Hypertext Transfer Protocol --
HTTP/1.1", RFC 2616, June 1999.
[20] Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
August 1999.
[21] Klensin, J., "Simple Mail Transfer Protocol", RFC 2821, April
2001.
[22] Resnick, P., "Internet Message Format", RFC 2822, April 2001.
[23] Klyne, G., "Indicating Media Features for MIME Content", RFC
2912, September 2000.
[24] Chandhok, R. and G. Wenger, "List-Id: A Structured Field and
Namespace for the Identification of Mailing Lists", RFC 2919,
April 2001.
[25] Palme, J., "Common Internet Message Header Fields", Internet
draft draft-palme-mailext-headers-05, May 2001,
<http://search.ietf.org/internet-drafts/draft-palme-mailext-
headers-05.txt>.
[26] Bernstein, D., "Internet mail field name index",
<http://cr.yp.to/immhf/index.html>.
[27] "Mail address for submission of header registration template",
<mailto:[[[ietf-message-headers]]]@iana.org>.
[28] "IANA list of registered message headers",
<http://www.iana.org/[[[ToBeDefined]]]>.
Klyne Expires July 5, 2002 [Page 11]
Internet-Draft Message header registration Jan 2002
Author's Address
Graham Klyne
MIMEsweeper Group
1310 Waterside
Arlington Business Park
Theale, Reading RG7 4SA
UK
Phone: +44 118 903 8000
Fax: +44 118 903 9000
EMail: Graham.Klyne@MIMEsweeper.com
Appendix A. Revision history
(This section to be removed on final publication)
A.1 draft-klyne-msghdr-registry-01
01a 04-Jan-2002:
* In response to feedback from interested parties, expanded the
registry to cover Normative and Provisional message header
registrations.
* Defined a formal role for the applicable protocol(s) in the
registry: the combination of header name and any applicable
protocol must be unique for a Normative Message Header.
* Noted further constraints to the header name format for XML
name compatibility.
* Fixed registration policy for a Normative Message Header to be
"IETF Consensus".
A.2 draft-klyne-msghdr-registry-00
00a 27-Sep-2001:
* Document initially created.
Appendix B. Todo
(This section to be removed on final publication)
o Finalize initial registrations.
Klyne Expires July 5, 2002 [Page 12]
Internet-Draft Message header registration Jan 2002
o Finalize email address for submission of registration templates.
o Finalize web address for registry.
Klyne Expires July 5, 2002 [Page 13]
Internet-Draft Message header registration Jan 2002
Full Copyright Statement
Copyright (C) The Internet Society (2002). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
Klyne Expires July 5, 2002 [Page 14]