Yousuke Kimote wrote: > CURL_HTTP_VERSION_2TLS: > - HTTP2 is used only on TLS. > - If HTTP is requested with this new mode, Curl will make a HTTP connection > automatically. > - If HTTP2 handshake failed, Curl will try to connect using HTTP (fallback > action) > > Is my understanding right?
The HTTP/2 over TLS handshake should take place via NPN/ALPN. If the server cannot support h2, then a different protocol would be selected. I presume curl will still support HTTP/1.1, and so the fallback would be that protocol. As a worst case, if the application protocol cannot be agreed between client and server, this is a TLS failure (fatal "no_application_protocol" alert) and I would assume that curl would simply report that. Daniel Stenberg wrote: > Since HTTP/2 over HTTP adds to the request size and causes extra round-trips > when upgrading, it has a higher impact so I think we shouldn't have it by > default (at this point in time). I agree with the extra size (although it is all relative) but are there really additional round-trips? I've been trying to find the time to look at 'h2c prior knowledge' in curl/libcurl, still some way to go. Prior knowledge avoids upgrade overhead but would need an option to signal usage, I think the new argument creates a pathway for such an option. If it comes to a point of implementation, I don't think h2c prior knowledge should be a default either due to the possibility of ungraceful failure. Lucas ------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
