cURL / Mailing Lists / curl-library / Single Mail

curl-library

RE: HTTP/2 multiplexing

From: Lucas Pardue <Lucas.Pardue_at_bbc.co.uk>
Date: Tue, 28 Apr 2015 11:11:55 +0000

Hello Daniel,

It is good to see work starting on this feature.

> Right now I need CURLMOPT_MAX_HOST_CONNECTIONS set to 1 to really
> stay on one connection only, and again, this may be fine for HTTP/2-only
> users but it may not be what users want for all protocols at once. Not sure
> how to handle this, but I'm not entirely happy with this and neither would I
> be to add a totally option like
> CURLMOPT_MAX_HOST_HTTP2_CONNECTIONS for this specific protocol
> version.

The connection management issues are interesting, after rereading section 9.1 of the HTTP/2 spec it seems like having to set a value for either CURLMOPT_MAX_HOST_CONNECTIONS or CURLMOPT_MAX_HOST_HTTP2_CONNECTIONS would be a bit awkward. The spec states "Clients SHOULD NOT open more than one HTTP/2 connection to a given host and port pair" and mentions a few cases where additional connections may be created as replacements; stream ID exhaustion, refresh of TLS keying material or replacement for connection encountering errors. To me this area feels like something better handled implicitly in libcurl, with the standard behaviour being a single connection.

> I run nghttpd locally as a test server. HTTPS only to start with.

I would gently ask to test non-HTTPS (h2c) soon too. In the past we have found issues with the h2c connection upgrade and related behaviour. The issues have been fixed along the way but it would be unfortunate to regress. For example, with the new changes if we can send multiple requests in parallel, which one performs the connection upgrade and does it stall the other requests until completion?

Regards
Lucas

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2015-04-28