Re: SETTINGS frame payload commit behavior

On Sat, Jan 17, 2015 at 11:03 AM, Osama Mazahir <OSAMAM@microsoft.com>
wrote:

>  Section 6.5 SETTINGS
>
>    Each parameter in a SETTINGS frame replaces any existing value for
>
>    that parameter.  Parameters are processed in the order in which they
>
>    appear, and a receiver of a SETTINGS frame does not need to maintain
>
>    any state other than the current value of its parameters.  Therefore,
>
>    the value of a SETTINGS parameter is the last value that is seen by a
>
>    receiver.
>
>
>
> Let’s say a SETTINGS frame has two values for SETTINGS_HEADER_TABLE_SIZE
> (i.e. specified twice).  The first value (e.g. at index=0) is 1KB and the
> second value (e.g. at index=1) is 60KB.
>
>
>
> Does the receiver apply the table size change just once with a value of
> 60KB.  Or does he first shrink the table size to 1KB and then expand the
> table to 60KB?
>

​The latter is correct.  All SETTINGS must be processed in the order.
There may be some SETTINGS values you can skip to process. For example, you
might see 3 SETTINGS_HEADER_TABLE_SIZE entries in this order: 0, 16KB,
32KB, then 16KB can be safely ignored.

The behavior of multiple SETTINGS_HEADER_TABLE_SIZE is ​explained in detail
in http://http2.github.io/http2-spec/compression.html#maximum.table.size

Best regards,
Tatsuhiro Tsujikawa

Received on Saturday, 17 January 2015 02:59:40 UTC