Subject: Multiple Headers

From: Jeff Pinner <[email-masked]>
Date: Sun, 16 Jun 2013 07:45:20 -0700

The SPDY spec defined how multiple headers with the same name were to be
encoded (as one header with the value-field containing multiple
null-separated entries).

Is this the expected encoding
for draft-ruellan-http-header-compression-00.txt?

---

From: James M Snell <[email-masked]>
Date: Sun, 16 Jun 2013 08:13:47 -0700

It is currently unspecified. There are two ways of doing multiple values in
the current draft that may change a bit once we get into the type codecs.
Currently you can either null separate the instances in a single header
value, or you can use separate opcodes for each (treat them as separate
headers). The latter can be far more efficient in the encoding. For now,
I'd recommend the separate opcode approach and revisit it when we discuss
type codecs in more detail.

---

From: Jeff Pinner <[email-masked]>
Date: Sun, 16 Jun 2013 11:52:08 -0700

Another point requiring clarification:

The draft lists tables with pre-defined headers for "requests" and
"responses." I am presuming that the intention was, for example, that a
server would initialize its sending header table with the "response" table
listed in appendix A.2.

My question is, should the server also use this table when compressing the
PUSH_PROMISE header block which contains "request" headers?

On Sun, Jun 16, 2013 at 8:13 AM, James M Snell <[email-masked]> wrote:

> It is currently unspecified. There are two ways of doing multiple values
> in the current draft that may change a bit once we get into the type
> codecs. Currently you can either null separate the instances in a single
> header value, or you can use separate opcodes for each (treat them as
> separate headers). The latter can be far more efficient in the encoding.
> For now, I'd recommend the separate opcode approach and revisit it when we
> discuss type codecs in more detail.

---

From: RUELLAN Herve <[email-masked]>
Date: Mon, 17 Jun 2013 16:21:25 +0000

There is also the possibility to use a single header value with coma-separated instances.

I will add a note on this subject in the spec.

Hervé.
________________________________
From: James M Snell [[email-masked]]
Sent: Sunday, June 16, 2013 17:13
To: Jeff Pinner
Cc: HTTP Working Group
Subject: Re: Multiple Headers

It is currently unspecified. There are two ways of doing multiple values in the current draft that may change a bit once we get into the type codecs. Currently you can either null separate the instances in a single header value, or you can use separate opcodes for each (treat them as separate headers). The latter can be far more efficient in the encoding. For now, I'd recommend the separate opcode approach and revisit it when we discuss type codecs in more detail.

On Jun 16, 2013 7:48 AM, "Jeff Pinner" <[email-masked]<mailto:[email-masked]>> wrote:
The SPDY spec defined how multiple headers with the same name were to be encoded (as one header with the value-field containing multiple null-separated entries).

Is this the expected encoding for draft-ruellan-http-header-compression-00.txt?

---

From: RUELLAN Herve <[email-masked]>
Date: Mon, 17 Jun 2013 16:26:48 +0000

Yes you correctly read the intent. I will update the last paragraph of "3.1 Header Table" to be clearer.

Yes the server uses the same table when compressing the PUSH_PROMISE headers: the server has only one compression context for the headers it sends. This table needs to be updated to include the request headers contained in a PUSH_PROMISE frame.

Hervé.
________________________________
From: Jeff Pinner [[email-masked]]
Sent: Sunday, June 16, 2013 20:52
To: James M Snell
Cc: HTTP Working Group
Subject: Re: Multiple Headers

The draft lists tables with pre-defined headers for "requests" and "responses." I am presuming that the intention was, for example, that a server would initialize its sending header table with the "response" table listed in appendix A.2.

My question is, should the server also use this table when compressing the PUSH_PROMISE header block which contains "request" headers?

On Sun, Jun 16, 2013 at 8:13 AM, James M Snell <[email-masked]<mailto:[email-masked]>> wrote:

---

From: David Morris <[email-masked]>
Date: Mon, 17 Jun 2013 09:35:26 -0700 (PDT)

> There is also the possibility to use a single header value with coma-separated instances.

I don't think that will work. I'm pretty sure that multiple set-cookie
headers can't be folded into a single value which is what is required
to use commas as the value delimiter.

> Herv?.

---

From: RUELLAN Herve <[email-masked]>
Date: Mon, 17 Jun 2013 16:51:56 +0000

Cookies behave differently from the other HTTP headers when it comes to multiple occurrences. So comma-separated instances will not work for the Set-Cookie or the Cookie headers. It will work for the other headers allowing multiple occurrences though.

Hervé.
________________________________________
From: David Morris [[email-masked]]
Sent: Monday, June 17, 2013 18:35
To: HTTP Working Group
Subject: RE: Multiple Headers

---

From: Roberto Peon <[email-masked]>
Date: Mon, 17 Jun 2013 10:06:55 -0700

As Hervé said-- certain headers are funny and exceptional.

Essentially: only the new mechanisms are going to work for all headers
without exception, but that won't stop the old mechanisms from working.
On Jun 17, 2013 9:53 AM, "RUELLAN Herve" <[email-masked]> wrote:

> Cookies behave differently from the other HTTP headers when it comes to
> multiple occurrences. So comma-separated instances will not work for the
> Set-Cookie or the Cookie headers. It will work for the other headers
> allowing multiple occurrences though.
>
> Hervé.
> > Is this the expected encoding for
> draft-ruellan-http-header-compression-00.txt?
> >
>
>
>