Re: [http-state] non-ASCII cookie values (was Re: Closing Ticket 3: Public Suffixes)

Adam Barth <ietf@adambarth.com> Wed, 03 February 2010 07:48 UTC

Return-Path: <adam@adambarth.com>
X-Original-To: http-state@core3.amsl.com
Delivered-To: http-state@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B670B3A6948 for <http-state@core3.amsl.com>; Tue, 2 Feb 2010 23:48:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.66
X-Spam-Level:
X-Spam-Status: No, score=-0.66 tagged_above=-999 required=5 tests=[AWL=-1.133, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, MIME_CHARSET_FARAWAY=2.45]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id T-H5JOMb-s-m for <http-state@core3.amsl.com>; Tue, 2 Feb 2010 23:48:37 -0800 (PST)
Received: from mail-px0-f186.google.com (mail-px0-f186.google.com [209.85.216.186]) by core3.amsl.com (Postfix) with ESMTP id E33CC3A68FE for <http-state@ietf.org>; Tue, 2 Feb 2010 23:48:36 -0800 (PST)
Received: by pxi16 with SMTP id 16so1075930pxi.29 for <http-state@ietf.org>; Tue, 02 Feb 2010 23:49:09 -0800 (PST)
MIME-Version: 1.0
Received: by 10.142.55.13 with SMTP id d13mr1030057wfa.50.1265183349083; Tue, 02 Feb 2010 23:49:09 -0800 (PST)
In-Reply-To: <67660F71-01A3-4B66-B546-B740A1314E49@apple.com>
References: <7789133a1002011014x5d587436j663a73bc92270a65@mail.gmail.com> <E1E6C8DE-EFB6-4226-93EE-AF20053FF315@apple.com> <Pine.LNX.4.64.1002012105180.6765@egate.xpasc.com> <7789133a1002012254oafc43aehe32f16e2640cbcdc@mail.gmail.com> <92003C09-05E0-4D51-B17B-05C26A41C209@apple.com> <7789133a1002021630n65bed91q2ffc975a94b1d2cb@mail.gmail.com> <143E98B7-BFA6-4F77-9685-E57FFD2449A6@apple.com> <7789133a1002021737v2a50be07u3eea61a2fe870c79@mail.gmail.com> <4B6926FC.5030107@gmx.de> <67660F71-01A3-4B66-B546-B740A1314E49@apple.com>
From: Adam Barth <ietf@adambarth.com>
Date: Tue, 2 Feb 2010 23:48:49 -0800
Message-ID: <7789133a1002022348h57a61611me73b95e110c72ea3@mail.gmail.com>
To: Maciej Stachowiak <mjs@apple.com>
Content-Type: text/plain; charset=GB2312
Content-Transfer-Encoding: quoted-printable
Cc: http-state@ietf.org
Subject: Re: [http-state] non-ASCII cookie values (was Re: Closing Ticket 3: Public Suffixes)
X-BeenThere: http-state@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Discuss HTTP State Management Mechanism <http-state.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/http-state>, <mailto:http-state-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/http-state>
List-Post: <mailto:http-state@ietf.org>
List-Help: <mailto:http-state-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/http-state>, <mailto:http-state-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Feb 2010 07:48:37 -0000

On Tue, Feb 2, 2010 at 11:34 PM, Julian Reschke <julian.reschke@gmx.de> wrote:
> Adam Barth wrote:
>> ...
>> I've added some basic tests using non-ASCII characters (in this case
>> Chinese): charset0001, charset0002, charset0003.  IE, Firefox, Chrome,
>> and Opera handle these cookies fine.  Safari does something strange
>> that I haven't tracked down yet.
>> ...
>
> Could you please elaborate on what means "handles fine"? After all, it's not
> specified, right?

I mean the bytes are treated opaquely, which is what the draft
specifies.  The draft specifies what to do with every sequence of
bytes a user agent can receive from a server.

On Tue, Feb 2, 2010 at 11:38 PM, Maciej Stachowiak <mjs@apple.com> wrote:
> I assume he means that the same bytes that come in as part of the value in a Set-Cookie header get sent out in a future Cookie header, even if they are non-ASCII.

Precisely.

> I am curious if the Cookie name, and not just the value, can contain non-ASCII in existing implementations.

Yes, it can.  charset0002 tests a non-ASCII name and value.
charset0003 tests a non-ASCII name, value, and custom attribute, all
of which acts naturally in IE/Firefox/Chrome/Opera:

== charset0001 ==
Set-Cookie: foo=春节回家路・春运完全手册
Cookie: foo=春节回家路・春运完全手册

== charset0002 ==
Set-Cookie: 春节回=家路・春运完全手册
Cookie: 春节回=家路・春运完全手册

== charset0003 ==
Set-Cookie: 春节回=家路・春运; 完全手册
Cookie: 春节回=家路・春运

Adam