Forward Proxy, Reverse Proxy and API Proxy
Udaysinh
2 min read
What is a proxy server?
Proxy service means act on behalf of another machine. Proxy server is a system or router that provides gateway between users and internet. It helps prevent cyber attackers from entering a private network.
What is a forward proxy?
- Forward proxy is used by clients like web browsers and hides details of clients
- its a way to enforce rules for clients in internal private networks to allow/deny access to external internet resources such as file downloads
- proxy server can also act as a cache for frequent requests to same external resource
- forward proxy server can keep track of requests, responses, sources and destinations
- can also be used to enforce authentication, SSL certification and security policies
What is a reverse proxy?
- Reverse proxy is used by servers and hides details of servers
- external users will never know details of internal web servers processing requests making it difficult for attackers to hack
- reverse proxy can also act as load balances to route requests to backend servers
What is an API Proxy?
API Proxy is an interface or a lightweight gateway that sits between clients (frontend) and your backend services.
When should I use API Proxy?
- when you want to decouple frontend from implementation/interface details of backend services, hide complex or multiple backend calls to services
- when you want ability to support protocol translation between frontend and backend, which support different protocols
- when you want to apply common basic security protocol to all backend services in a single place
- when you want to cache the large response or response from slow resource
- when you want to monitor backend calls in a single place
Can you show me how it works with examples?
This schematic covers 2 examples, protocol translation and routing to multiple services
0
Subscribe to my newsletter
Read articles from Udaysinh directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Udaysinh
Udaysinh
Lead software engineer working in financial industry with expertise in backend technologies, fascinated by system design and architecture, always keen to learn what's new