draft-ietf-appsawg-xdash-02.txt   draft-ietf-appsawg-xdash-03.txt 
APPSAWG P. Saint-Andre APPSAWG P. Saint-Andre
Internet-Draft Cisco Systems, Inc. Internet-Draft Cisco Systems, Inc.
Intended status: BCP D. Crocker Intended status: BCP D. Crocker
Expires: April 26, 2012 Brandenburg InternetWorking Expires: August 16, 2012 Brandenburg InternetWorking
M. Nottingham M. Nottingham
Rackspace Rackspace
October 24, 2011 February 13, 2012
Deprecating Use of the "X-" Prefix in Application Protocols Deprecating Use of the "X-" Prefix in Application Protocols
draft-ietf-appsawg-xdash-02 draft-ietf-appsawg-xdash-03
Abstract Abstract
Historically, designers and implementers of application protocols Historically, designers and implementers of application protocols
have often distinguished between "standard" and "non-standard" have often distinguished between "standard" and "non-standard"
parameters by prefixing the latter with the string "X-" or similar parameters by prefixing the latter with the string "X-" or similar
constructions. In practice, this convention causes more problems constructions. In practice, this convention causes more problems
than it solves. Therefore, this document deprecates the "X-" than it solves. Therefore, this document deprecates the "X-"
convention for most application protocol parameters. convention for textual parameters in application protocols.
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 26, 2012. This Internet-Draft will expire on August 16, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2012 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 Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Recommendations for Implementers of Application Protocols . . 3 2. Recommendations for Implementers of Application Protocols . . 3
3. Recommendations for Creators of New Parameters . . . . . . . . 3 3. Recommendations for Creators of New Parameters . . . . . . . . 3
4. Recommendations for Protocol Designers . . . . . . . . . . . . 4 4. Recommendations for Protocol Designers . . . . . . . . . . . . 4
5. Security Considerations . . . . . . . . . . . . . . . . . . . 4 5. Security Considerations . . . . . . . . . . . . . . . . . . . 4
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 5 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 5
8.1. Normative References . . . . . . . . . . . . . . . . . . . 5 8.1. Normative References . . . . . . . . . . . . . . . . . . . 5
8.2. Informative References . . . . . . . . . . . . . . . . . . 5 8.2. Informative References . . . . . . . . . . . . . . . . . . 5
Appendix A. Background . . . . . . . . . . . . . . . . . . . . . 7 Appendix A. Background . . . . . . . . . . . . . . . . . . . . . 7
Appendix B. Analysis . . . . . . . . . . . . . . . . . . . . . . 9 Appendix B. Analysis . . . . . . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11
1. Introduction 1. Introduction
Many application protocols use named parameters to identify data Many application protocols use parameters with textual names to
(media types, header fields in Internet mail messages and HTTP identify data (media types, header fields in Internet mail messages
requests, vCard parameters and properties, etc.). Historically, and HTTP requests, vCard parameters and properties, etc.).
designers and implementers of application protocols have often Historically, designers and implementers of application protocols
distinguished between "standard" and "non-standard" parameters by have often distinguished between "standard" and "non-standard"
prefixing the latter with the string "X-" or similar constructions parameters by prefixing the latter with the string "X-" or similar
(e.g., "x."), where the "X" is commonly understood to stand for constructions (e.g., "x."), where the "X" is commonly understood to
"eXperimental" or "eXtension". stand for "eXperimental" or "eXtension".
Although in theory the "X-" convention was a good way to avoid Although in theory the "X-" convention was a good way to avoid
collisions (and attendant interoperability problems) between standard collisions (and attendant interoperability problems) between standard
parameters and non-standard parameters, in practice the benefits have parameters and non-standard parameters, in practice the benefits have
been outweighed by the costs associated with the leakage of non- been outweighed by the costs associated with the leakage of non-
standard parameters into the standards space. Therefore this standard parameters into the standards space. Therefore this
document deprecates the "X-" convention for most application document deprecates the "X-" convention for named parameters in
protocols and makes specific recommendations about how to proceed in application protocols and makes specific recommendations about how to
a world without the distinction between standard and non-standard proceed in a world without the distinction between standard and non-
parameters. standard parameters. Note that this document covers only parameters
with textual names, not parameters that are expressed as numbers. In
addition, this document makes no recommendation as to whether
existing "X-" parameters ought to remain in use or be migrated to a
format without the "X-".
See Appendix A for background information about the history of the See Appendix A for background information about the history of the
"X-" convention, and Appendix B for the reasoning that led to the "X-" convention, and Appendix B for the reasoning that led to the
recommendations in this document. recommendations in this document.
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 "OPTIONAL" in this document are to be interpreted as described in
[RFC2119]. [RFC2119].
skipping to change at page 4, line 5 skipping to change at page 4, line 9
3. Recommendations for Creators of New Parameters 3. Recommendations for Creators of New Parameters
Creators of new parameters to be used in the context of application Creators of new parameters to be used in the context of application
protocols: protocols:
1. SHOULD assume that all parameters they create might become 1. SHOULD assume that all parameters they create might become
standardized, public, commonly deployed, or used across multiple standardized, public, commonly deployed, or used across multiple
implementations. implementations.
2. SHOULD employ meaningful but currently unused names (without the 2. SHOULD employ meaningful names that they have reason to believe
"X-" prefix). are currently unused (without the "X-" prefix).
Note: If the relevant parameter name space has conventions about Note: If the relevant parameter name space has conventions about
associating parameter names with those who create them, a parameter associating parameter names with those who create them, a parameter
name could incorporate the organization's name or primary domain name name could incorporate the organization's name or primary domain name
(see Appendix B for examples). (see Appendix B for examples).
4. Recommendations for Protocol Designers 4. Recommendations for Protocol Designers
Designers of new application protocols that allow extensions using Designers of new application protocols that allow extensions using
parameters: parameters:
skipping to change at page 5, line 15 skipping to change at page 5, line 20
defined in this document. defined in this document.
7. Acknowledgements 7. Acknowledgements
Thanks to Claudio Allocchio, Adam Barth, Nathaniel Borenstein, Eric Thanks to Claudio Allocchio, Adam Barth, Nathaniel Borenstein, Eric
Burger, Stuart Cheshire, Al Constanzo, Dave Cridland, Martin Duerst, Burger, Stuart Cheshire, Al Constanzo, Dave Cridland, Martin Duerst,
Frank Ellermann, J.D. Falk, Ned Freed, Tony Finch, Randall Gellens, Frank Ellermann, J.D. Falk, Ned Freed, Tony Finch, Randall Gellens,
Tony Hansen, Ted Hardie, Joe Hildebrand, Alfred Hoenes, Paul Hoffman, Tony Hansen, Ted Hardie, Joe Hildebrand, Alfred Hoenes, Paul Hoffman,
Eric Johnson, John Klensin, Graham Klyne, Murray Kucherawy, Eliot Eric Johnson, John Klensin, Graham Klyne, Murray Kucherawy, Eliot
Lear, John Levine, Bill McQuillan, Alexey Melnikov, Subramanian Lear, John Levine, Bill McQuillan, Alexey Melnikov, Subramanian
Moonesamy, Keith Moore, Ben Niven-Jenkins, Dirk Pranke, Randy Moonesamy, Keith Moore, Ben Niven-Jenkins, Zoltan Ordogh, Tim Petch,
Presuhn, Julian Reschke, Doug Royer, Andrew Sullivan, Martin Thomson, Dirk Pranke, Randy Presuhn, Julian Reschke, Doug Royer, Andrew
Matthew Wild, Nicolas Williams, Tim Williams, Mykyta Yevstifeyev, and Sullivan, Martin Thomson, Matthew Wild, Nicolas Williams, Tim
Kurt Zeilenga for their feedback. Williams, Mykyta Yevstifeyev, and Kurt Zeilenga for their feedback.
8. References 8. References
8.1. Normative References 8.1. 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, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
8.2. Informative References 8.2. Informative References
 End of changes. 11 change blocks. 
25 lines changed or deleted 29 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/