Polipo

Last updated

Polipo
Developer(s) Juliusz Chroboczek
Final release
1.1.1 [1]   OOjs UI icon edit-ltr-progressive.svg / 14 May 2014;9 years ago (14 May 2014)
Repository
Written in C
Operating system Windows, OS X, Linux, OpenWrt, FreeBSD, OpenBSD [2]
Type web cache, proxy server
License MIT License (free software) [3]
Website www.pps.univ-paris-diderot.fr/~jch/software/polipo/
The LAMP (software bundle) with polipo as lightweight forwarding and caching web proxy server. A high performance and high-availability solution for a hostile environment LAMP software bundle.svg
The LAMP (software bundle) with polipo as lightweight forwarding and caching web proxy server. A high performance and high-availability solution for a hostile environment

Polipo is a discontinued lightweight caching and forwarding web proxy server. It has a wide variety of uses, from aiding security by filtering traffic; to caching web, DNS and other computer network lookups for a group of people sharing network resources; to speeding up a web server by caching repeated requests. It can be configured to use on-disk cache and serve cached content when offline and perform various forms of content filtering.

Contents

To minimize latency, Polipo both pipelines multiple resource requests and multiplexes multiple transactions onto the same TCP/IP connection. [4] Polipo is HTTP 1.1-compliant, supports IPv4, IPv6, traffic filtering and privacy-enhancement.

Polipo is free software [5] released under the MIT License. [6]

Polipo ceased to be maintained on 6 November 2016 [7] due to the increasingly widespread use of encryption (i.e. HTTPS) making caching proxies obsolete. [8]

Design

Polipo is designed to be used as a personal web cache or a web cache shared among a few users to boost internet access. [9] [10] Designed to be fast, lightweight and small, it is useful when the system resources for a larger proxy are unavailable. Because of this, it has been put to uses such as a tether on the OpenWrt.

GUI wrappers

Natively, polipo comes as a highly specialized command-line interface (CLI) software application, which requires commands to be typed on the keyboard and parameters stored in configuration text files. Alternatively, polipo allows users to run the program automated and non-interactively, such as in a shell script. By starting a GUI wrapper application users can intuitively interact with polipo, start and stop it and change its working parameters, through graphical icons and visual indicators.

Some independent GUI wrapper projects are:

Features

The fast, lightweight and small memory footprint proxy server polipo uses a variety of techniques: [5]

Limitations

Polipo is limited to 2G or 4G file sizes on 32 bit systems which will cause errors when serving large requests.

See also

Related Research Articles

<span class="mw-page-title-main">HTTP</span> Application protocol for distributed, collaborative, hypermedia information systems

The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, where hypertext documents include hyperlinks to other resources that the user can easily access, for example by a mouse click or by tapping the screen in a web browser.

In computer networking, the User Datagram Protocol (UDP) is one of the core communication protocols of the Internet protocol suite used to send messages to other hosts on an Internet Protocol (IP) network. Within an IP network, UDP does not require prior communication to set up communication channels or data paths.

<span class="mw-page-title-main">Network address translation</span> Protocol facilitating connection of one IP address space to another

Network address translation (NAT) is a method of mapping an IP address space into another by modifying network address information in the IP header of packets while they are in transit across a traffic routing device. The technique was originally used to bypass the need to assign a new address to every host when a network was moved, or when the upstream Internet service provider was replaced, but could not route the network's address space. It has become a popular and essential tool in conserving global address space in the face of IPv4 address exhaustion. One Internet-routable IP address of a NAT gateway can be used for an entire private network.

<span class="mw-page-title-main">Proxy server</span> Computer server that makes and receives requests on behalf of a user

In computer networking, a proxy server is a server application that acts as an intermediary between a client requesting a resource and the server providing that resource. It improves privacy, security, and performance in the process.

<span class="mw-page-title-main">Privoxy</span> Non-caching proxy server

Privoxy is a free non-caching web proxy with filtering capabilities for enhancing privacy, manipulating cookies and modifying web page data and HTTP headers before the page is rendered by the browser. Privoxy is a "privacy enhancing proxy", filtering web pages and removing advertisements. Privoxy can be customized by users, for both stand-alone systems and multi-user networks. Privoxy can be chained to other proxies and is frequently used in combination with Squid among others and can be used to bypass Internet censorship.

<span class="mw-page-title-main">Squid (software)</span> Caching and forwarding HTTP web proxy

Squid is a caching and forwarding HTTP web proxy. It has a wide variety of uses, including speeding up a web server by caching repeated requests, caching World Wide Web (WWW), Domain Name System (DNS), and other network lookups for a group of people sharing network resources, and aiding security by filtering traffic. Although used for mainly HTTP and File Transfer Protocol (FTP), Squid includes limited support for several other protocols including Internet Gopher, Secure Sockets Layer (SSL), Transport Layer Security (TLS), and Hypertext Transfer Protocol Secure (HTTPS). Squid does not support the SOCKS protocol, unlike Privoxy, with which Squid can be used in order to provide SOCKS support.

SOCKS is an Internet protocol that exchanges network packets between a client and server through a proxy server. SOCKS5 optionally provides authentication so only authorized users may access a server. Practically, a SOCKS server proxies TCP connections to an arbitrary IP address, and provides a means for UDP packets to be forwarded. A SOCKS server accepts incoming client connection on TCP port 1080, as defined in RFC 1928.

In computer networking, localhost is a hostname that refers to the current computer used to access it. The name localhost is reserved for loopback purposes. It is used to access the network services that are running on the host via the loopback network interface. Using the loopback interface bypasses any local network interface hardware.

<span class="mw-page-title-main">HTTP pipelining</span>

HTTP pipelining is a feature of HTTP/1.1, which allows multiple HTTP requests to be sent over a single TCP connection without waiting for the corresponding responses. HTTP/1.1 requires servers to respond to pipelined requests correctly, with non-pipelined but valid responses even if server does not support HTTP pipelining. Despite this requirement, many legacy HTTP/1.1 servers do not support pipelining correctly, forcing most HTTP clients to not use HTTP pipelining.

In computer networks, a tunneling protocol is a communication protocol which allows for the movement of data from one network to another. It can, for example, allow private network communications to be sent across a public network, or for one network protocol to be carried over an incompatible network, through a process called encapsulation.

A web accelerator is a proxy server that reduces website access time. They can be a self-contained hardware appliance or installable software.

The Internet Content Adaptation Protocol (ICAP) is a lightweight HTTP-like protocol specified in RFC 3507 which is used to extend transparent proxy servers, thereby freeing up resources and standardizing the way in which new features are implemented. ICAP is generally used to implement virus scanning and content filters in transparent HTTP proxy caches. Content adaptation refers to performing the particular value added service for the associated client request/response.

<span class="mw-page-title-main">Microsoft Forefront Threat Management Gateway</span>

Microsoft Forefront Threat Management Gateway, formerly known as Microsoft Internet Security and Acceleration Server, is a discontinued network router, firewall, antivirus program, VPN server and web cache from Microsoft Corporation. It ran on Windows Server and works by inspecting all network traffic that passes through it.

lwIP is a widely used open-source TCP/IP stack designed for embedded systems. lwIP was originally developed by Adam Dunkels at the Swedish Institute of Computer Science and is now developed and maintained by a worldwide network of developers.

This article presents a comparison of the features, platform support, and packaging of many independent implementations of Domain Name System (DNS) name server software.

A proxy auto-config (PAC) file defines how web browsers and other user agents can automatically choose the appropriate proxy server for fetching a given URL.

Pound is a lightweight open source reverse proxy program and application firewall suitable to be used as a web server load balancing solution. Originally developed by an IT security company, it has a strong emphasis on security. The original intent on developing Pound was to allow distributing the load among several Zope servers running on top of ZEO. However, Pound is not limited to Zope-based installations. Using regular expression matching on the requested URLs, Pound can pass different kinds of requests to different backend server groups. A few more of its most important features:

In computing, Microsoft's Windows Vista and Windows Server 2008 introduced in 2007/2008 a new networking stack named Next Generation TCP/IP stack, to improve on the previous stack in several ways. The stack includes native implementation of IPv6, as well as a complete overhaul of IPv4. The new TCP/IP stack uses a new method to store configuration settings that enables more dynamic control and does not require a computer restart after a change in settings. The new stack, implemented as a dual-stack model, depends on a strong host-model and features an infrastructure to enable more modular components that one can dynamically insert and remove.

curl-loader is an open-source software performance testing tool written in the C programming language.

References

  1. "Release 1.1.1". 14 May 2014. Retrieved 22 July 2018.
  2. "polipo-1.1.1 – HTTP caching proxy". OpenBSD ports . 20 August 2014. Retrieved 10 November 2015.
  3. "The Polipo Manual" . Retrieved 23 September 2010.
  4. Fielding, R.; Gettys, J.; Mogul, J.; Frystyk, H.; Berners-Lee, T. (1997). "rfc2068 - HTTP/1.1". doi:10.17487/RFC2068 . Retrieved 23 September 2010.{{cite journal}}: Cite journal requires |journal= (help)
  5. 1 2 "Polipo — a caching web proxy" . Retrieved 5 February 2010.
  6. "Polipo distribution conditions" . Retrieved 23 September 2010.
  7. polipo commits: rephrase README (6 November 2016)
  8. "Polipo — a caching web proxy" . Retrieved 5 December 2016.
  9. "Boost your Internet browsing - Install Polipo" . Retrieved 5 February 2010.
  10. "The Polipo Manual" . Retrieved 23 September 2010.
  11. "Solipo" . Retrieved 23 September 2010.
  12. "Dolipo" . Retrieved 23 September 2010.
  13. "Polipoid" . Retrieved 21 April 2014.
  14. "Censoring headers - The Polipo Manual" . Retrieved 30 April 2013.