We use analytics cookies.We use cookies to analyze site traffic and improve your experience.
Loading...
System Design Masterclass · Load Balancing Proxies
Free preview: the first 2 parts of this 10-part lesson.
Already bought the course? Sign in to read the whole lesson.
this lesson is part of
System Design Masterclass
Unlock this lesson and the 751 other paid lessons
$25 once, by PayPal
See the System Design courseread the rest of this lesson in
System Design Masterclass
Unlock this lesson and the 751 other paid lessons
$25 once, by PayPal
See the System Design coursein Load Balancing Proxies
This lesson is part of the full System Design Masterclass. Unlock it along with 769 other lessons for a one-time payment.
One-time payment by card or PayPal
Get Lifetime AccessOne-time payment: UPI, card or netbanking
Get Lifetime Access18 Foundation lessons are free, no payment needed. Try them now
It is easy and good
“It is really nice and good Please join the course”
Ever worked somewhere that blocked social media? Used a VPN to appear to be in another country? Set http_proxy so a build could reach the internet? All three are the same thing.
A forward sits between a set of clients and the rest of the internet, and makes requests on their behalf. Your machine talks to the proxy, and the proxy talks to the site.
The defining property is not the technology. It is who deployed it and whose side it is on.

With a forward proxy the client knows about it and deliberately routes through it, and the destination server usually has no idea a proxy was involved.
With a the client has no idea, and the servers behind it are hidden. Nothing in the software has to differ, and the same product can do either job.
The protocol difference between talking to a and talking to a server is one line.

Normally a client resolves the host, connects to it, and asks for a path. With a proxy it connects to the proxy and asks for a complete URL, and the proxy resolves the host itself.
That last point matters more than it looks: your machine may never look the site up at all.
Because it is such a small change, an proxy needs no cooperation from the destination and no special client. Setting one environment variable is enough for most tools, which is why it became the universal corporate mechanism.

CONNECT asks the proxy to open a raw tunnel. The TLS handshake happens end to end through it, between the client and the real server.
So the proxy knows which site you visited and nothing whatsoever about what you did there.
None of that is theory. A forward proxy is about seventy lines of code, and it can print exactly what it was handed.

Plain HTTP arrives as a complete URL, so the path, the headers, the cookies and the body are all equally readable and equally changeable.
arrives as a hostname and a port, and then the proxy is relaying bytes it cannot interpret.

This is not a policy setting. It is what the protocol hands the proxy.
Read the top two rows again before assuming HTTPS hides your browsing from a network operator. It does not hide where you went, only what you did there.
That distinction decides a lot of real design: filtering by domain works on both, and filtering by URL only works on one.