On Tue, 21 Sep 2021, Jeff King wrote:
I cc'd you here mostly as an FYI. I think Git was doing the wrong thing
in assuming case here (we're only expecting these particular headers
coming from the client, but for response headers, I thnk curl will give
us whatever form the server sent us).
That'd be correct, yes.
But certainly I found the behavior surprising. :) I'd guess it's because
HTTP/2 is sending some binary goo instead of text headers, and the names we
get are just coming from some lookup table? Or maybe I'm just showing my
ignorance of HTTP/2.
At any rate, I wonder if it would be friendlier for curl to hand strings
to the debug function with the usual capitalization.
Maybe that could've been a good idea if we had done it when we introduced
HTTP/2 support. Now, I think that ship has sailed already as libcurl has
supported HTTP/2 since late 2013 and changing anything like that now will just
risk introducing the reverse surprise in applications. Better not rock that
boat now methinks.
PS This nit aside, it is totally cool that I have been seamlessly using
HTTP/2 to talk to github.com without even realizing it. I wonder for
how long!
I don't know when github.com started supporting h2, but since libcurl 7.62.0
(released Oct 31, 2018) it has negotiated h2 by default over HTTPS.
--
/ daniel.haxx.se