HTTP/2 requests via Sparkle client


I need to send a POST request to a server which is based on the new HTTP/2 protocol.  It requires the requests to use HPACK (header compression for HTTP/2).  Do you know if HTTP/2 requests are supported in Sparkle and/or WinHTTP ?  I've tried a standard request but am receiving the following message in the response :

HTTP/2 client preface string missing or corrupt. 


Hi Jonathan,

WinHttp does not support HTTP/2 yet. We will have to wait Microsoft to add to support to it. On the other hand, isn't HTTP/2 backward compatible? It should receive HTTP/1.1 requests normally. 

Hi Wagner,

Thank you for your time.  I kind of thought HTTP/2 was backwards compatible too, but it's very new to me.  What I'm trying to do is upgrade our Apple Push Notification Server (APNS) to use the new HTTP/2 API (I have to make some changes anyway so thought I'd migrate it).  The documentation is here :

If you scroll down the page they show some example requests, which have quite a different structure to anything I've seen with HTTP/1.1.  Reading the document it sounds to me that it only accepts HTTP/2 requests, but I value your opinion.

Kind regards,

I must confess I haven't catch up with HTTP/2 in depth yet. Indeed it looks like only HTTP/2 is supported for this specific API, but I can't be 100% sure right now. But it seems we're not alone:

Thank you, I think I'll have to postpone the update until HTTP/2 is supported in WinHttp.

One more question - are you able to reveal any possible updates coming for Sparkle in 2016?

Happy New Year,

Happy New Year!

We have recently added a middleware architecture in Sparkle. So our plan is to add middlewares to it, like authentication. It will also depend on requests from users. Of course when underlying API's support HTTP/2 (like WinHttp) we will try to add support to it. If you have any suggestion, just let us know!