- From: Brian Pane <brianp@brianp.net>
- Date: Wed, 29 Feb 2012 19:52:04 -0800
- To: ietf-http-wg@w3.org
On Wed, Feb 29, 2012 at 5:40 PM, Amos Jeffries <squid3@treenet.co.nz> wrote:
> On 01.03.2012 13:39, Mike Belshe wrote:
>>
>> If the protocol is allowed to be slower than HTTP/1.1, then you could do
>> this. But, a lot of server operators that care about performance aren't
>> going to want to take that hit.
>
>
> That is what bothers me about all the arguments against Upgrade: based on
> extra RTT and lag.
>
> today: HTTP/1.1 request + HTTP/1.1 response == 1 RTT
>
> versus
>
> tomorrow: HTTP/1.1 request /w Upgrade header + XYZ response /w 200 status
> prefix == 1 RTT
I use a different comparison:
HTTP/1.1 today:
TCP handshake: 1 RTT
HTTP/1.1 request for resource 1: 1 RTT
Total == 2 RTT
...meanwhile, the same thing happens on m-1 other connections that the
browser is using in parallel
HTTP/1.1 with Upgrade to 2.0:
TCP handshake: 1 RTT
HTTP/1.1. request for resource 1: 1 RTT
HTTP/2.0 requests for resources 2, ..., n-1, n: 1 RTT
Total == 3 RTT
More generally, the minimum number of round trips to fetch n small
objects in current HTTP/1.1 usage is:
1+ CEILING(n/m) RTT
where m is the number of concurrent connections the client uses
(typically 6 or 8 for current-generation browsers.) If a client used
an initial HTTP/1.1 request to negotiate an upgrade to HTTP/2.0, the
minimum number of round trips would be:
2 + n
For n<=2*m, the Upgrade-based approach would mean more round trips
than are required today.
The Upgrade approach also would require more round trips than current
SPDY usage:
SPDY today:
TCP handshake: 1 RTT
TLS handshake, including NPN: 2 RTT
SPDY requests for resources 1, 2, ..., n-1, n: 1 RTT
Total = n resources in 4 RTT
Initial HTTP/1.1 request + Upgrade:
TCP handshake: 1 RTT
TLS handshake: 2 RTT
HTTP/1.1 request w/Upgrade + response x/ 200 status: 1 RTT
SPDY requests for resources 2, ..., n-1, n = 1 RTT
Total = n resources in 5 RTT
In terms of sending an initial HTTP/1.1 request to upgrade to HTTP/2.0
looks like a step backwards compared to current deployments of both
HTTP/1.1 and SPDY.
-Brian
Received on Thursday, 1 March 2012 03:52:32 UTC