Skip to content

Custom HTTP Proxy written in C with no external libraries

Notifications You must be signed in to change notification settings

AkshatJain9/C-HTTP-Network-Proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C HTTP Proxy

This project implements a HTTP proxy to handle GET requests over the internet. To run this project, you must be on a POSIX compliant machine (e.g. Linux) or you can use WSL on Windows. This project was made without any external C libraries with the exception of csapp.c.

To run the proxy, run the following command in your terminal;

make proxy

./proxy <port> <LRU | LFU>

Where LRU or LFU indicates the replacement policy for the included Cache.

This proxy can be used with a browser if set in default browser settings.

The proxy has the following features;

  • Dynamic Threadpool for handling concurrent clients using pthreads
  • Usage of reading/writing locks to avoid the readers/writers problem whilst avoiding deadlocks
  • Caching in Main Memory using either a Least Frequently Used (LFU) or Least Recently Used (LRU) policy
  • Custom error handling
  • Ability to handle all forms of media

About

Custom HTTP Proxy written in C with no external libraries

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •