Polipo (vs Squid vs ???)

529 views
Skip to first unread message

John Fields

unread,
Jul 31, 2015, 4:13:19 PM7/31/15
to The HomeFrontRouter Project
http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/

Polipo is a small and fast caching web proxy (a web cache, an HTTP proxy, a proxy server). While Polipo was designed to be used by one person or a small group of people, there is nothing that prevents it from being used by a larger group.

Polipo has some features that are, as far as I know, unique among currently available proxies:

  • Polipo will use HTTP/1.1 pipelining if it believes that the remote server supports it, whether the incoming requests are pipelined or come in simultaneously on multiple connections
    (this is more than the simple usage of persistent connections, which is done by e.g. Squid);
  • Polipo will cache the initial segment of an instance if the download has been interrupted, and, if necessary, complete it later using Range requests;
  • Polipo will upgrade client requests to HTTP/1.1 even if they come in as HTTP/1.0, and up- or downgrade server replies to the client's capabilities
    (this may involve conversion to or from the HTTP/1.1 chunked encoding);
  • Polipo has complete support for IPv6 (except for scoped (link-local) addresses).
  • Polipo can optionally use a technique known as Poor Man's Multiplexing to reduce latency even further.

In short, Polipo uses a plethora of techniques to make web browsing (seem) faster.


What Polipo is useful for

A screenshot of Polipo's configuration interface

By virtue of being a (mostly) compliant HTTP/1.1 proxy, Polipo has all the uses of traditional web proxies. It is typically used as a web proxy for a single computer or a small network, although it has successfully been used by larger groups.

Because Polipo is small and easy to install (just copy the polipo binary), it has applications beyond those of traditional web proxies. I usually copy Polipo to whatever machine I happen to be using and do all my browsing through it (with no on-disk cache). I've also occasionally used it to cross firewalls that were misconfigured or overly restrictive.

Since it can speak both IPv4 and IPv6, Polipo can be used as a bridge between the IPv4 and IPv6 Internets: to allow an IPv6-only host to access IPv4 servers or vice versa.

Since it can speak the SOCKS protocol, Polipo can be used together with the tor anonymising network.

Because it has primitive filtering capabilities, Polipo can be used to remove advertisements and improve privacy. Unless you're trying to provide service to a full network, however, you will likely be happier with a suitable browser extension, such as AdBlock or Ghostery.

Reply all
Reply to author
Forward
0 new messages