Hello! On Thu, Dec 17, 2020 at 05:01:54AM +0000, Jon Carmicheal wrote:
> I would like to disable the caching of headers in the dynamic > table of the HTTP/2 HPACK compression algorithm described in RFC > 7541. I have defined my nginx server with > > listen 8080 > > http2 > > ; > > and I've confirmed that the HPACK algorithm is working as > expected with Huffman encoding, static header table indexing, > and dynamic header table indexing. But I haven't been able to > disable the dynamic table. You cannot disable dynamic table support in nginx. As an HPACK decoder, nginx supports dynamic table of up to 4096 octets (the default for SETTINGS_HEADER_TABLE_SIZE in HTTP/2). > RFC 7541 mentions in "Section 4.2. Maximum Table Size" the > ability of an HTTP/2 node to "clear entries from the dynamic > table by setting a maximum size of 0, which can subsequently be > restored." Is that a feature supported by nginx? Can I disable > the dynamic table entirely so that no header fields are cached? > And can I arbitrarily send a flush request so that all entries > are evicted and then the dynamic table size is restored? If so, > how? Yes, it is supported. The "how" is specified in the section "6.3. Dynamic Table Size Update" of the same RFC (https://tools.ietf.org/html/rfc7541#section-6.3). > I've been trying to play with "http2_max_field_size" and > "http2_max_header_size" in the server configuration file as > described in > https://nginx.org/en/docs/http/ngx_http_v2_module.html. But I > don't think those are the right parameters. When I set either of > them to zero, it makes the server return an error when a header > is sent. These are unrelated parameters. They set size limits on compressed individual header fields and total length of all uncompressed headers, respectively, so nginx will reject attempts to use larger headers. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx