Re: Clarification of dynamic table size change

> On 19 Oct 2015, at 16:59, Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> wrote:
> 
> I can read that dynamic table size update is always necessary as acknowledgement of SETTINGS_HEADER_TABLE_SIZE if it is present in SETTINGS.
> But someone can read in the other way.

Yeah, see, I read it the other way. My reading of section 4.2 of RFC 7541 emphasises this: “a *change* in the maximum size […] is signalled”. But you’re right that it’s ambiguous. In this case, I’d say that an implementation MAY emit a dynamic table size update if the size is unchanged (because it’s a no-op), but MUST do so if it has changed. For implementation simplicity, many implementations will chose to always emit that size update, but equally many implementations will not. If we’re counting, my own implementation does the same thing as Google’s: see here[0].

Specifically, I don’t think the HPACK layer should complain because a dynamic table size update was not received when the dynamic table size did not change. In this instance I believe nghttp2 is being overly strict about the relationship between the HTTP/2 layer and the HPACK layer.

Cory

[0]: https://github.com/python-hyper/hpack/blob/master/hpack/table.py#L188

Received on Monday, 19 October 2015 16:13:21 UTC