Cross-platform, small and fast caching web proxy (a web cache, an HTTP proxy, a proxy server)
In short, Polipo uses a plethora of techniques to make web browsing (seem) faster.
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 there's no fundamental reason why it shouldn't be used by a larger one.
Because Polipo is small and easy to install (just copy the polipo binary), it has applications beyond those of traditional web proxies.
Because it has primitive filtering capabilities, Polipo can be used in place of privacy-enhancing, ad-filtering proxies such as Privoxy, Junkbuster, or WWWOFFLE. As Polipo has much more refined HTTP support, it doesn't impose the speed tax usually associated with such proxies.
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.
- 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 a hurry? Add it to your Download Basket!
What's New in version 1.0.4
- Fixed the handling of tunnels with a parent proxy (thanks to Richard Šputa).
- Fixed a bug that could cause connections to be shut down when a server used the old (RFC 2068) semantics of ``100 Continue'' (thanks to Thomas Wiesel).
- Fixed a crash when a request URL was larger than 10 kB (thanks to Fabian Keil).
- Fixed a possible failure to read client requests larger than one chunk.