Coding Challenge  #51 - HTTP Forward Proxy Server

Coding Challenge #51 - HTTP Forward Proxy Server

Coding Challenge #51 - Build Your Own HTTP Forward Proxy Server

This challenge is to build your own HTTP Proxy Server. A proxy is a server that sits between a client that wants to get a resource and a server that provides the resource.

There are two types of proxy servers that you’ll come across: forward proxies and reverse proxies. As software engineers most of us have probably come across reverse proxies, perhaps even configured and operated them in our infrastructure. For those that haven’t here’s a brief overview.

A reverse proxy is typically installed in front of a collection of servers that provide a service to clients. They’re transparent to the clients and typically provide one of more of the following: services:

  • Load balancing.
  • Geo forwarding.
  • DDoS protection.
  • TLS termination.
  • Caching.

For example, a CDN service service is in effect a reverse proxy.

Forward proxies are talked about less often, at least by software engineers, as we’re not usually asked to build or run them. If anything I’ve probably spent more of my career focusing on ways around them. ???Not least in the early days of the Internet when many organisations used forward proxies to block large parts of the Internet - one company I worked for blocked all access to MSDN which made being a Windows developer at the time somewhat challenging!

That said some browsing restrictions make sense and forward proxies provide the ability to enforce these restrictions. They can also be used to obfuscate the identify of users where multiple users all connect through the same proxy.

Ironically we can also use use a forward proxy to circumvent browsing restrictions.


Reminder - Getting Help And Feedback On Your Solutions

If would like some feedback on your solution the best place to get it is on the Discord server - come join the Coding Challenges community, all welcome.


The Challenge - Building Your Own Forward Proxy Server

We’re going to build a simple forward proxy that we can use to proxy some of our HTTP/HTTPS requests through. We’ll then implement some browsing restrictions to see how that works too.

Continued...

The steps for this Coding Challenge are detailed on the website as Build Your Own HTTP Forward Proxy Server.

I've no longer included the detail on the LinkedIn version as I've become aware that it is formatting it incorrectly.

If you'd rather get the whole challenge delivered to you inbox every week, you can subscribe, free on the Coding Challenges Substack.


Share Your Solutions!

If you think your solution is an example of the developers can learn from please share it, put it on GitHub, GitLab or elsewhere. Then let me know via Twitter or LinkedIn or just post about it there and tag me.

Request for Feedback

I’m writing these challenges to help you develop your skills as a software engineer based on how I’ve approached my own personal learning and development. What works for me, might not be the best way for you - so if you have suggestions for how I can make these challenges more useful to you and others, please get in touch and let me know. All feedback greatly appreciated.

You can reach me on Twitter, LinkedIn or through SubStack.

Thanks and happy coding!

John

Artur Abdusametov

Blockchain && Full-stack developer

7 个月

??

Andrea L.

Principal Engineering Lead

7 个月

Waiting for "build your own kubernetes" ??

Basma Taha

Senior Software Engineer @Multiverse | Prev: Monzo, Bloomberg, and Amazon.

7 个月

Another challenging and enjoyable challenge. Thanks John Crickett!

要查看或添加评论,请登录

社区洞察

其他会员也浏览了