I’m working on a site with the goal of being as fast as possible. This goal requires letting mobile clients make the initial HTTP request in one round-trip. (HTTP/2’s HPACK should take care of subsequent requests for the same page.)
The conventional wisdom is that 14 kilobytes of compressed response is as much as you can expect out of the first round-trip for a web page (because of TCP Slow Start), but similar calculations as that theory’s don’t produce similar results when testing.
My target connection has the following characteristics:
- 3rd-generation cellular data protocol (3G)
- 200ms latency (400ms RTT)
- 400Kb/s maximum download bandwidth
- 300Kb/s maximum upload bandwidth
- 0% packet loss, at least for the purposes of this question
- HTTP/2 over TLS
- Assume Android Chrome for the client
Ultimately, I want to set performance goals for how big the app-controllable request headers can be; mainly Etag
and Cookie
. (I can’t really control Referer
and such, but at least they have a known maximum size in practice.)