Welcome! Log In Create A New Profile

Advanced

Re: http2 broken

Maxim Dounin
July 11, 2018 01:04PM
Hello!

On Wed, Jul 11, 2018 at 08:56:56PM +0800, 洪志道 wrote:

> But there are still some clients use the old version.
> Is it a way to be compatible with it?
> Or other suggestions?
> @Maxim Dounin <mdounin@mdounin.ru>

As I already wrote in ticket #1397, we can try introducing a
workaround in nginx, but I'm not convinced it worth the effort and,
more importantly, associated downsides for non-broken clients.

# HG changeset patch
# User Maxim Dounin <mdounin@mdounin.ru>
# Date 1531328359 -10800
# Wed Jul 11 19:59:19 2018 +0300
# Node ID f44e74d331885dce8682d2a9802eb707be7ae86f
# Parent 54683f650cbdcd73f7f8d845c843295978da5a85
HTTP/2: workaround for clients which fail on table size updates.

There are clients which cannot handle HPACK's dynamic table size updates
as added in 12cadc4669a7 (1.13.6). Notably, old versions of OkHttp library
are known to fail on it (ticket #1397).

This change makes it possible to work with such clients by only sending
dynamic table size updates in response to SETTINGS_HEADER_TABLE_SIZE. As
a downside, clients which do not use SETTINGS_HEADER_TABLE_SIZE will
continue to maintain default 4k table.

diff --git a/src/http/v2/ngx_http_v2.c b/src/http/v2/ngx_http_v2.c
--- a/src/http/v2/ngx_http_v2.c
+++ b/src/http/v2/ngx_http_v2.c
@@ -270,8 +270,6 @@ ngx_http_v2_init(ngx_event_t *rev)

h2c->frame_size = NGX_HTTP_V2_DEFAULT_FRAME_SIZE;

- h2c->table_update = 1;
-
h2scf = ngx_http_get_module_srv_conf(hc->conf_ctx, ngx_http_v2_module);

h2c->concurrent_pushes = h2scf->concurrent_pushes;
@@ -2075,6 +2073,11 @@ ngx_http_v2_state_settings_params(ngx_ht
h2c->concurrent_pushes = ngx_min(value, h2scf->concurrent_pushes);
break;

+ case NGX_HTTP_V2_HEADER_TABLE_SIZE_SETTING:
+
+ h2c->table_update = 1;
+ break;
+
default:
break;
}

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

http2 broken

karton 66 July 11, 2018 05:30AM

Re: http2 broken

karton 15 July 11, 2018 05:38AM

Re: http2 broken

tokers 17 July 11, 2018 05:46AM

Re: http2 broken

karton 19 July 11, 2018 08:58AM

Re: http2 broken

Maxim Dounin 12 July 11, 2018 01:04PM

Re: http2 broken

karton 26 July 11, 2018 01:26PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 65
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 254 on July 05, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready