About this site

This site presents a list of open source HTTP proxies written in java and python, with comparison tables, so that you compare the proxies on a feature by feature basis. Further detail is available on each proxy: click it's name for more info.

About xhaus.com

  1. Follow xhaus.com on twitter
  2. Read the xhaus.com blog
  3. Browse the xhaus.com opensource portal

What is a HTTP proxy?

A HTTP proxy acts as an intermediary between a HTTP client (i.e. browser) and HTTP server. It receives all requests from the browser, and relays them (possibly modified) to the server. Likewise, it receives all responses from the server, and relays them (possibly modified) to the client. HTTP Proxies can be used for a wide variety of tasks, including filtering, logging, caching, etc, etc, etc.

Contact us

If any of the details on this page are incorrect or out-of-date, or you find a proxy that is not listed here, please feel free to tell us about it.

NAVIGATION: Front page | java proxy comparison table | python proxy comparison table

Detailed information about PYTHON proxy: Amit's Web Proxy Project
Proxy Name Amit's Web Proxy Project
Language and version python version: all
HTTP version 1.1
HTTPS Connect no
Windows NTLM support no
Last updated YYYY-MM-DD 2003-11-16
Platform Mostly *nix
Author Amit Patel
Home page http://theory.stanford.edu/~amitp/proxy.html
Primary features Filtering/blocking, compression, experimental architectural approaches, range of loadable modules
Features

Amit has written a variety of proxies, with differing features. Among the features of the varying proxies are

  1. Content filtering
  2. Content filtering on streamed content
  3. External configuration files
  4. Gzip encoding
  5. Chunked encoding
  6. Persistent Connections
  7. DNS Lookups
  8. Loadable modules
  9. A java applet which acts as a user interface

Among the loadable modules that come with Proxy 3 are

  1. mod_proxy: provide magic URLs that display the proxy's internal state.
  2. mod_stdio: listen for proxy events (HTTP connections, errors, timeouts, ad removal, etc.) and display them on stdout.
  3. mod_curses: listen for proxy events and display them in a curses UI.
  4. mod_gtk: listen for proxy events and display them in a GTK UI; also allow changing settings.
  5. mod_ui: listen for proxy events and display them in a Java applet (not included); also allow changing settings.
  6. mod_stats: listen for proxy events and display statistics when the proxy exits.
  7. mod_timing: display slow DNS lookups and slow proxy filters.
  8. mod_cookies: listen for cookie events (sent by server, sent by browser) and display them on stdout.
  9. mod_headers: display HTTP headers (sent by server, sent by browser) on stdout.
  10. mod_html: modify HTML -- change Slashdot color scheme from green to blue; rearrange My Excite portal layout; change Microsoft quotes to standard ASCII quotes; remove popup ads; remove banner ads.
  11. mod_geocities: modify HTML -- remove Geocities popups.
  12. mod_java: modify Java bytecode (wrap audio, thread, frame, socket objects).
  13. mod_slashdot: modify images -- change Slashdot color scheme from green to blue by altering the GIF files.
  14. mod_block: block clear GIFs.
  15. mod_cache: cache documents forever.
  16. mod_dnsprefetch: parse HTML documents, find hostnames, prefetch the DNS lookups for them so when you click on a link, the (often slow) DNS lookup is already performed.
  17. mod_formdata: display form upload data.
  18. mod_ignorecache: remove headers which tell the browser not to cache certain sites.
  19. mod_nocookie: block servers from setting cookies.
License MIT
Design Architecture Asyncore
Notes Amit has some good notes on the various implementations he has created, including discussion of techniques. Amit put a lot of work in transforming content as it passed through the proxy: e.g. eliminating javascript that popped-up windows, eliminating requests to ad-servers, etc.