X-* header fields (Was: Getting 2822 to Draft)
2004-01-03 10:40:35
On 1/3/04 at 11:00 AM -0500, Al Costanzo wrote:
I don't think anyone would have a problem with a small note in the
"Changes to previous standards" section which says, "Some people
think X-* fields are bad, some think they are good, they were
removed from this document." For a fuller discussion, I think Keith
is right that we might consider a separate informational document.
If they are not part of this document it cannot replace/obsolete 822.
I'm sorry, but I think this is rubbish. X-* fields are perfectly
legal in 2822 (they fall under "optional-field"); they simply are not
given the special treatment of 822, that they won't ever be official
published extensions to the standard. The only difference then
between 822 and 2822 in this respect is that 822 gives publication
guidelines for extensions where 2822 does not. This has absolutely
*no* effect on implementations of the protocol. I defy anyone to
explain to me why this should have any effect on 2822bis obsoleting
822.
Now, let me use this opportunity to explain *why* I don't think X-*
fields should be in the standard in the first place:
The idea behind X-* fields (what 822 called user-defined fields) was
so that folks could use new field names without worrying that they
would interfere with the standard fields. That way, you didn't have
to go through the trouble of publishing an RFC just to use a field
that was only going to be internal to your particular system. The
downside was that someone else could come along and potentially use
the same field name in a completely incompatible way, but that was
the risk that you took.
But since then, two things have made it clear that such user-defined
fields are unnecessary and problematic:
1. Unnecessary: We now have IANA registration services. We could very
simply create an IANA registry of e-mail field names. Then, if you
wanted to create a new field, you just fill out the registration form
and you're not only guaranteed that you won't interfere with
published standard fields, you're also guaranteed that nobody else
would use the field you chose in an incompatible way. And you
wouldn't have to have a name that started with "X-".
2. Problematic: Some folks thought it was nice to have "X-*" fields
for completely private use. But history teaches us that inevitably
"X-*" fields *will* leak out onto the rest of the Internet. As
several people in this thread have pointed out, we now have some
"X-*" fields that are in widespread use. Sometimes, people use them
very interoperably and they have served a fabulous purpose.
Sometimes, they don't get used interoperably. It would be great if we
could publish some standards to make sure that they do get used
interoperably. But guess what: We can't! It is forbidden by RFC 822
to publish any standard for a field name that beings with "X-". No
matter how widespread the use, no matter how useful the field is, it
can not be standardized *by definition*. That decreases
interoperability on the Internet.
Now, personally, I would love the document to say, "There is no good
reason to use fields that begin with 'X-' as defined by RFC 822; any
name that does not interfere with a currently registered or published
field name is fine, and using an 'X-' field is discouraged because
they can't ever be standardized." But there was widespread
non-consensus in the DRUMS Working Group when this was discussed.
2822 does say "Extension header fields no longer specifically called
out." In 2822bis, I think it would be fine to clarify that and say
"User-defined header fields (those starting with 'X-') no longer
specifically discussed", and even have an informational reference to
a document (or 2) on why it was pulled. But I see absolutely no
reason that this should stop 2822bis from moving to full Standard and
obsoleting 822.
pr
--
Pete Resnick <http://www.qualcomm.com/~presnick/>
QUALCOMM Incorporated - Direct phone: (858)651-4478, Fax: (858)651-1102
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- Re: Getting 2822 to Draft, (continued)
- Re: Getting 2822 to Draft, Al Costanzo
- X-* header fields (Was: Getting 2822 to Draft),
Pete Resnick <=
- Re: X-* header fields (Was: Getting 2822 to Draft), Arnt Gulbrandsen
- Re: X-* header fields (Was: Getting 2822 to Draft), ned+ietf-822
- Re: X-* header fields (Was: Getting 2822 to Draft), Charles Lindsey
- Re: X-* header fields (Was: Getting 2822 to Draft), ned+ietf-822
- Re: X-* header fields (Was: Getting 2822 to Draft), Bruce Lilly
- Re: X-* header fields (Was: Getting 2822 to Draft), Pete Resnick
- Re: X-* header fields (Was: Getting 2822 to Draft), Keith Moore
- Re: X-* header fields, Kai Henningsen
- Re: X-* header fields, Keith Moore
- Re: X-* header fields, Russ Allbery
|
|
|