HTTP Proxy Server

DATE & STATUS

Click here for more information about this project

September / October / November 1998

Implemented as a semester project during my ERASMUS exchange year in Torino, Italy.

DESCRIPTION

The goal of this project («HTTP Proxy Server») was to implement a simple, easy to understand and flexible HTTP proxy server. The main purpose of the proxy server is to be used as an HTML filter. Filtering tools can be "plugged-in" very easily, without modification of the proxy source code. Apart from filtering, the proxy server also caches documents on disk for faster access. The project was developed under UNIX (LINUX) using the gcc compiler.

Some research on the Web to find existing proxy servers in source form that could be used as a basis for this project yielded several results: GNU wwwoffle, wcol WWW Collector, Squid & Harvest. Most of the sources found were "professional" solutions, in the case of Squid for example consisting of more than 41'000 lines of code, or wwwoffle with 20'000 lines. Much of that code has nothing to do with actual proxy functionality, and was of little study interest.

A posting in a newsgroup pointed the author of these lines to wcol-A, a source from 1994. This code was studied in depth and formed the bases for this project. The latest version at the time of writing, wcol-E from July 1998, had many extensions and wcol-E consisting of 32'000 (!) lines compared to just 3800 in wcol-A. To ease understanding, it was decided to keep the old A-version as a basis for this project's proxy server.

MORE INFORMATION

Simple HTTP Proxy Server, project paper, 10 pages. Word format, 77 KB.
C Source code of Simple HTTP Proxy. Compiles under gcc/LINUX. 24 KB.