Chrome’s Data Compression Proxy
Earlier this year, Google rolled out a new feature for beta versions of mobile Chrome: The Data Compression Proxy. When enabled, your mobile device proxies all its non-SSL web traffic over a SPDY connection to servers at Google.
This might sound like something you have heard before. Back when Amazon launched the Kindle Fire, it included Silk, a custom built web browser when featured a nearly identical proxy mode. Silk too would use a SPDY connection to proxy servers running on Amazon EC2 infrastructure. (In fact, Amazon Silk was one of the first major deployments of SPDY outside of Google). Performance improves came from the SPDY connection, a shared non-SSL HTTP cache implemented at Amazon and shared among multiple Silk users, shared DNS pools, etc.
In short, Amazon, wanting to ensure that web browsing would be an awesome experience, took the unprecedented step to proxy the entire Internet. The idea that device or software creators would try and “fix” slow web sites to provide a better web browsing experience is an interesting one.
Google’s Data Compression Proxy is similar to web acceleration feature of Amazon’s Silk. SPDY is used, and QUIC is a logical choice for the future as well. DNS lookups are done by the server. No official word on whether that is a shared cache either, but this is obvious optimization to make.
The Data Compression Proxy is also making use of PageSpeed. Google already offers PageSpeed Service for websites. This works like many other accelerators out there, requiring website owners to use DNS to route traffic to thier website through Google’s PageSpeed service, which then applies a set of optimizations.
“Our experience with PageSpeed shows that many content optimizations can, in fact, be automated, which is precisely what the data compression proxy does on your behalf!” (Google)
The Data Compression Proxy and the PageSpeed service both work by automatically optimizing traffic flowing through them. With the PageSpeed Service, DNS is used to make PageSpeed act as a proxy. With the Data Compression Proxy, the browser is configured to use a proxy. Its logical that the same common software or infrastructure are used for both. The difference is that website owners control the settings of what gets optimized and how much it gets optimized for the PageSpeed Service. The Data Compression Proxy processes all websites, so its automatic optimizations rules need to be more conservative. Things like minification and converting images to WebP are low hanging fruit optimizations that the Data Compression Proxy implement.
Always Distrust “Free”
Google is offering people a faster mobile browsing experience, but only if they use Google’s browser, and if they also all proxy their web traffic through Google. Why? Sure its a compelling browser feature and differentiates Chrome from say, Mobile Safari or Mobile IE. But what does Google really get by offering this proxy service? If you step back, this moves strengths a strategic push by Google to gain visibility into everything a user does up and down the entire browsing stack. Whether this is a conscious decision or not, Google has rolled out a series of free services all of which provide Google with the ability to track the actions of more and more website visitors.
Google’s DNS service? Faster DNS look ups and its free! Yea! Oh, and now Google knows roughly what traffic a website gets (number of lookups), where that traffic comes from (IP to country/ISP of DNS request), and a what time.
But not everyone uses Google DNS (and it can actually make you slower). Ok, Google Analytics! It’s free, and gives Google access into your traffic logs. Yes, this helps Google help you buy more AdWords and AdSense from Google, but it also provides insight into who goes to a page, how long do they read it, and where do they go next on your site. All things that help Google’s search.
But wait, PageSeed Service has some limitations, such as the deal-breaking requirement for most Enterprises that all web traffic is funneled to a third party. Additionally, it requires the website owner to opt in to use it. In fact, all of Google’s free services offered so far requires the website owner to make a decision to allow Google access to its visitors and their actions. There are only so many websites that will take this action, capping what Google can see.
Erasing the Middle Man
And that is the genius behind the Data Compression Proxy. The website acts as a middle man between Google and the users who actions Google would like to observe. That website and its decision to use Google’s free services or not act as a gate to allow or deny Google access to the actions of those visitors. But there is no middle man website with the Data Compression Proxy. The user makes the choice! And there are orders of magnitude more browser users than websites. Google can observe far more users, in far more detail, via the Data Compression Proxy than any of its free for-website-owner services.
The Data Compression Proxy is provides a win for mobile users by reducing their bandwidth, and a win for Google by enabling collection of more interesting data to “to provide, maintain, protect and improve”.
I am not saying that Google’s Data Compression Proxy is a bad thing. Faster websites are good for everyone. Just understand that when you aren’t paying money for something, you are always paying in other, less obvious ways.
Want to see how fast your site is? Try Zoompf’s free performance report to see what performance problems your website has. And since it is free, and you should naturally distrust free, we use this to collect information about what problems real world websites have, how messy their HTML and images are, and as a source of email addresses of people who might be interested in our product. Hurray full disclosure!