Http 2 instead of http 1.1

Are you looking for help?

Backendless Version (3.x / 5.x, Online / Managed / Pro )

Backendless cloud 6.x

Client SDK (REST / Android / Objective-C / Swift / JS )

Objective-C / Swift

Application ID

8C44389D-54B2-5DF3-FFF8-40A831D81800

Actual Behavior

Just a point of debate for the benefit of the community …

Apparently both Backendless servers are on http 1.1 for some reason … now the main issue I’m raising this is because of the latency issue http 1.1 is having on APIs issued on Cellular connection

I have tested this using large number of API calls on both types of connections (Wifi & Cellular) and found that using iOS the https session validity for APIs on Cellular are so short that almost each API call requires a new TLS handshake … apparently this is to do with the iOS built in configuration for sessions on Cellular media (I’m guessing minimizing session durations to maintain the device battery)… I have used all sorts of tricks to relax that session duration to no luck, APIs on Cellular connection kept asking for TLS handshaking most of the times ( I tested the TLS handshaking using NSURLSessionTaskMetrics).

Now this raises the question of what about http 2 I mean since the main promise of http 2 is to solve the latency thing using header compression, response caching (server push) and other techniques … I went on and tested that using a test server where I tested same database I have on a new server . here are the results

Cleary with http 2 huge improvement for the API on Cellular connection, and its logical as the connection didn’t need to do TLS handshaking every time …

I’m not sure about what it takes to turn the server to http 2 but can I suggest please for the Backendless team to look in to that given the obvious benefits on the latency side (plus other things)

Thanks
Eyad

Hi Eyad,

Thank you for looking into it. HTTP/2 support is on our radar, however, this is not something we’re eager to enable for several reasons. The potential downside impact is huge. We’re processing tens of millions of requests daily and if there is anything that may go wrong, it will impact thousands of live apps. The odds that something may go wrong do exist - reading posts like this one make me feel very uneasy.

A very large number of our customers rely on the real-time database and real-time messaging which are based on websockets. HTTP/2 provides an alternative mechanism for handling these types of connections, again, creating a smooth transition here would be rather hard.

Of course, there are benefits to HTTP/2, however, for deployment as large as ours, we need to carefully weigh the advantages and disadvantages.

Regards,
Mark

Hi Mark,

Thank, clear to me . If you guys decided to run a side/new http 2 setup . Please do let me know. I will bet interested to test and build on that.

Thanks
Eyad

1 Like