Subject: [http-state] [Technical Errata Reported] RFC6265 (3765)

From: RFC Errata System <[email-masked]>
Date: Sat, 26 Oct 2013 00:29:08 -0700 (PDT)

The following errata report has been submitted for RFC6265,
"HTTP State Management Mechanism".

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata_search.php?rfc=6265&eid=3765

--------------------------------------
Type: Technical
Reported by: Johannes Knaupp <[email-masked]>

Section: 4.1.1

Original Text
-------------
Servers SHOULD NOT include more than one Set-Cookie header field in
the same response with the same cookie-name.  (See Section 5.2 for
how user agents handle this case.)

Corrected Text
--------------
Servers MUST NOT include more than one Set-Cookie header field in
the same response.

Notes
-----
The HTTP specification (RFC 2616) says in its section 4.2: "Multiple message-header fields with the same field-name MAY be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., #(values)]. [...]"

Since the mentioned condition is not fulfilled in the case of Set-Cookie headers, only one Set-Cookie header is permissible in an HTTP message.

This also applies to the third example in section 3.1, even though it is not clearly specified there whether or not the two Set-Cookies originate from the same server response.

On the internet many HTTP messages contain multiple Set-Cookie headers, and this seems to make sense in order to avoid additional roundtrips. This, however, (1) does not match the HTTP specification, see above, and therefore (2) cannot be used with implementations stating that they were HTTP compatible and consequently only allow a single Set-Cookie header per response. Clearly, this is not a defect of those implementations, but of the specifications which are at least mistakable (if not contradictory).

Instructions:
-------------
This errata is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party (IESG)
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC6265 (draft-ietf-httpstate-cookie-23)
--------------------------------------
Title               : HTTP State Management Mechanism
Publication Date    : April 2011
Author(s)           : A. Barth
Category            : PROPOSED STANDARD
Source              : HTTP State Management Mechanism
Area                : Applications
Stream              : IETF
Verifying Party     : IESG

---

From: Julian Reschke <[email-masked]>
Date: Sat, 26 Oct 2013 13:13:57 +0200

On 2013-10-26 09:29, RFC Errata System wrote:
> ...

The spec says what it says on purpose. Changing the text as suggested 
would break the cookie system.

Best regards, Julian

---

From: Barry Leiba <[email-masked]>
Date: Sat, 26 Oct 2013 10:07:17 -0400

> would break the cookie system.

Indeed.  In particular, we know that 6265 doesn't always match up with
2616, because it's documenting how cookies are used, and the usage isn't
always strictly correct.

I'll mark this one "rejected" for that reason.

Barry

---

From: Daniel Stenberg <[email-masked]>
Date: Sat, 26 Oct 2013 20:14:03 +0200 (CEST)

> I'll mark this one "rejected" for that reason.

Not that it is needed, but I agree with this. The complaint was completely 
wrong.

-- 

  / daniel.haxx.se