mark nottingham

HTTP Pipelining Today

Friday, 5 August 2011

HTTP

Last week, Blaze.io highlighted how mobile browsers use HTTP pipelining.

I’ve been active in trying to get pipelining more widely deployed, but to date I haven’t tested mobile browsers much. So, one VM and two test pages (20 images on each) later, I asked my twitter peeps to hit it with their phones while I was watching with htracr.

The results confirm what they saw; mobile browsers do pipeline, sometimes aggressively.

A normal build of Firefox (and pretty much any desktop browser today) looks like this:

Firefox Aurora-1

As you can see, each connection pauses for each response; no pipelining. However, in Patrick’s builds of Firefox, we can see LOTS of pipelining:

Ff Nightly-1

Here, you can see the multiple requests in the packet displayed on the right, as well as the bright-red requests and responses that mean that multiple messages are happening simultaneously (here, the responses are 304s, so they’re not very big). Even though Firefox is pre-warming a bunch of connections, it doesn’t need them to validate 20 images per page, very quickly.

So, if the stuff brewing in Firefox is the cutting edge of HTTP pipelining, how are the mobile browsers doing it today? First, Opera Mobile:

Opera Mobile-2

Opera mobile is only using two connections, and doing some pipelining, but it could do more. Opera Mini from my iPhone (in forced HTTP mode) looks like this:

Opera Mini Http-2

Again, you see some pipelining, but there’s a lot of connections being used, which on mobile might not be the best answer.

Finally, an Android browser snapshot:

Android 2.2-2

Again, a fair amount of pipelining, and lots of connections.

I’m going to be doing some work on htracr soon, both to make it easier to export the results for sharing, and to give lots more information. If anybody wants to help out, that’d be great — just go to github!


2 Comments

https://me.yahoo.com/unhealthy_skeptic#7334f said:

Hey mark, is the “Android Browser” actually chrome or something else? Also, although many websites DO support pipelined requests, many others DON’T support them so there’s a question about how much of the web can you access with pipelining ??

Thursday, January 26 2012 at 11:49 AM