In May 1999, Intel advertised their Pentium III with 550 MHz to be designed for the internet. We all couldn't stop laughing since even our existing hardware could saturate the modems or (at best) ISDN cards many times over. My laughter got stuck in my throat after I got my first DSL (768 kbit/s, i.e., 12 times ISDN!) in July of that year. It was like going from Doom to Quake on a Voodoo card. A revolution, a breakthrough, something to be witnessed!
At present, I have an average and completely unremarkable ADSL2+ connection with a bandwidth not much above 12 Mbit/s down (and 1 Mbit/s up :( ) and a latency never below 40 ms. Compared to my office, these numbers are mediocre: the connection there offers a bandwidth of 100 MBit/s (up and down) and a latency of 4 ms. That should guarantee a very pleasant internet experience, wouldn't you think so?
Alas, all of our http traffic is passed through the content scanners of our Cisco gateway, and the resulting browsing experience is comparable to the one I had on my trusted Elsa Microlink 56k modem. Often even worse. But that's another story.
At home, I'm limited by the high latency of my connection rather than by its comparatively low bandwidth. Current web sites link to a myriad of other sites, resulting in an avalanche of DNS requests each of which takes time (yes, my Fritz!Box has a tiny DNS cache, but it is just that: tiny).
Most of these secondary sites are related to ads, which we don't want to see (or hear). Every halfway IT literate person thus uses adblockers. Alas, these indispensable extensions may surpass their host in memory consumption. I don't care about that at all on my desktop with its 16 GB of RAM, but what I'm going to do when I want to couch-surf with my teeny-tiny mini?
Well, obviously: I use the desktop with its excessive resources as server and proxy. To start with, the desktop runs a caching DNS server for my LAN. Tests with namebench show that about half of my requests are cache hits and are thus virtually instantaneous, resulting in a very noticeable speedup on all clients. In addition, the desktop serves as a filtering and caching proxy by passing the traffic of all clients through a privoxy-polipo chain. The latter is simply a global replacement of the browser disk cache (which thus should be disabled). The former is a filtering proxy removing the majority of ads, banners, and other annoyances from the pages we visit. After this step, a local adblocker taking care of the rest has little to do and takes few resources.
Sitting on the couch, next to my wife with her Nexus 7. She: "Hey look, go to this address!" Me: /type/.../tschadong/. She: "Why didn't you say that you had it already open?"
Browsing the web has never been snappier.