Re: [Ietf-message-headers] Provisional registration of 5 X-Device-* HTTP Header fields for use in content transformation guidelines

SM <> Fri, 14 August 2009 20:26 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 1C4423A6BD8 for <>; Fri, 14 Aug 2009 13:26:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.295
X-Spam-Status: No, score=-2.295 tagged_above=-999 required=5 tests=[AWL=-0.011, BAYES_00=-2.599, SARE_MILLIONSOF=0.315]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id tvUh-hUVvdXN for <>; Fri, 14 Aug 2009 13:26:57 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 13C8C3A6BAA for <>; Fri, 14 Aug 2009 13:26:57 -0700 (PDT)
Received: from ([]) (authenticated bits=0) by (8.14.4.Beta0/8.14.4.Beta0) with ESMTP id n7EKQoT5010618 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 14 Aug 2009 13:26:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;; s=mail; t=1250281619; x=1250368019; bh=UqnsfB2lxKKNAwzfflT7K8v0I83Fi07Xtc+/GLa6u3Y=; h=Message-Id:Date:To:From:Subject:Cc:In-Reply-To:References: Mime-Version:Content-Type; b=fLXAT/EbgcA/OIif5e5z5h3JF2DTnw/GiL2K4UAX/HbVpbXepevvdhgXvqUVsvczm lkv1S8bL1/odO9aGMr8QsJnY99gWBpE6MfpaeQmD/etCCnYVMMEseK3YfvnH1dMBwq 6HVZS6RM7IdGb8UU+7y7HfD2Kvt1UG7fAkp/qlW8=
DomainKey-Signature: a=rsa-sha1; s=mail;; c=simple; q=dns; b=fvr5yNJEKVeSbMd/QFpED9yQ03D1iG+HvI7AWr4vgk8VZAMVOaggbNofl5A7wFqsL i8NrS8u7ayOHuO+/iwOfnqVlPTPQfyIbVrB4um+JzDMsZAEGBDGqrU7niDldbo3G0uX yMx67O8b0rKfwQM6KKpSWuuw15cEuKpgMhKYa2g=
Message-Id: <>
X-Mailer: QUALCOMM Windows Eudora Version
Date: Fri, 14 Aug 2009 13:22:25 -0700
To: Francois Daoust <>
From: SM <>
In-Reply-To: <>
References: <> <> <> <> <> <> <> <> <>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: Graham Klyne <>,
Subject: Re: [Ietf-message-headers] Provisional registration of 5 X-Device-* HTTP Header fields for use in content transformation guidelines
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "Discussion list for header fields used in Internet messaging applications." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 14 Aug 2009 20:26:58 -0000

Hi Francois
At 03:44 14-08-2009, Francois Daoust wrote:
>Perhaps it would be better to issue some recommendation that says 
>"Do not use X- prefix at all for new HTTP header fields!". They seem 
>to have often been used as synonym to a vendor-specific namespace 
>rather than for private experiments. For new HTTP header fields, why 
>not use a "real" name and register it provisionally without much 
>ado, perhaps in a "private provisional" registry and simply drop 
>this "X-" convention?

Private would also cover what vendors do internally.  Once they seek 
interoperability with other vendors or use over the Internet, they 
can ask for a registration in the provisional registry.

>For instance, your email client adds an X-Mailer HTTP header field 
>to the message. There are other ways such information may be defined 
>in an email: Mail-System-Version or Originating-Client for instance. 
>These are non-standard HTTP header fields, but they are pretty 
>common. I am not aware of any attempt to standardize one of them. If 
>the info were deemed essential in the end, I guess one of the non 
>"X-" HTTP header fields would probably be used and properly defined 
>and standardized. And yet, whoever introduced them had no real 
>"right" to do that. He should have used an "X-" HTTP header field.

The "X-Mailer:" is a common Internet Message header.  It is 
documented as not part of an Internet Standard and is not in any of 
the message header field names registries.  There are also other 
issues with the message format emitted by my mail server. :-)  It's 
not really about whether we have the "right" to introduce a 
header.  It's more about avoiding conflict by using a common 
namespace as reference and to avoid interoperability issues.

>Once an "X-" HTTP header field has managed to escape the private 
>sphere, the transition period lasts as long as the header field is 
>in use when the transition affects millions of content authors.
>Don't we end up with locked situations where a given HTTP header 
>field cannot be properly standardized because of the transition 
>period? X-Forwarded-For, X-Wap-Profile have been used for years in 
>mobile networks. It's a pity they cannot be registered properly, 
>simply because they were not introduced with a correct name. 
>Standardisation often has to compose with already existing stuff, 
>and cannot just pretend nothing existed in the first place. The real 
>discussion should be on the usefulness of the header fields.

Yes.  There are some problems that can't be fixed. :-)

>Trying to summarize to see if we are on the same grounds. If I get 
>you right, you suggest that we do not register any HTTP header field 
>at this step OR that we register the new HTTP header fields as 
>"depreciated". The argument in favor of that is that the draft is 
>not stable enough and registration of new HTTP fields in the 
>provisional registry would seem like an encouragement to adopt them.

I suggest that the group determines the naming of its HTTP header 
fields and requests a registration in the provisional message header 
registry.  If the header field name begins with "X-", mark it as 
"depreciated", i.e. it is or will be superceded by another field 
name.  If the draft is not stable enough or you don't want to 
encourage others to adopt the field name, don't register it in the 
provisional registry now.  If the draft is an open specification, an 
implementor outside the group might read the draft and use the 
headers in his or her implementation.  It's up to the group to decide 
whether to provide guidance on adoption of the headers and if so, how to do so.

>If we do register HTTP fields names as depreciated, can we update 
>their status to "non-depreciated" at a later time and thus use the 
>provisional registry as a mere name reservation mechanism?

I'll defer to IANA on the status update as it is an unusual move to 
go from "depreciated".    The provisional registry acts as a name 
reservation mechanism.  If I see "Device-User-Agent:" in there, I'll 
have to come up with a different field name if I am requesting a registration.