Re: Why "MUST" encoder emit Context Update

On Wed, Jul 30, 2014 at 11:42:11PM +0000, Osama Mazahir wrote:
> http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-08#section-5.1
> 
>    After applying an updated value of the HTTP/2 setting
>    SETTINGS_HEADER_TABLE_SIZE that changes the maximum size of the
>    header table used by the encoder, the encoder MUST signal this change
>    via an encoding context update (see Section 7.3).  This encoding
>    context update MUST occur at the beginning of the first header block
>    following the SETTINGS frame sent to acknowledge the application of
>    the updated settings.
> 
> Why is it a 'MUST' for the encoder to emit a Context Update opcode?  The
> SETTINGS ACK (from encoder-side to decoder-side) communicates that the
> encoder has made the corresponding accounting change and implies the
> encoder will use the decoder's entire table space.  If the encoder does
> not want to stretch itself to the full extent of the decoder, only then
> is it a 'MUST' to emit a Context Update opcode in order to advertise wha
> subset of the table space it will use.

Actually, AFAICT (since static table is below dynamic indices, dynamic
incides drop on high index and reference set does not exist) even if
encoder_table < decoder_table, if stream is encoded correctly, it will
decompress correctly (but incorrect streams may decompress to garbage
instead of erroring out).


-Ilari

Received on Thursday, 31 July 2014 00:20:26 UTC