Here are my understandings about these and I see few gaps there; especially when and where to use
HTTP(s) proxy:
- Can be used as TLS termination proxy
- Can be used to modify HTTP headers
- Can be used as a load balancer or a public IP provider in front of DMZ to shield backend servers
TCP Proxy
- Can be used as reverse proxy for TCP connections and can support not only HTTP but also other application layer protocols such as FTP
My question(s)
- If I only accept HTTP web traffic what are the use cases where we should use TCP proxy instead of HTTP Proxy
- Is this understanding connect? TCP clients can connect to a single socket on TCP proxy and TCP Proxy can open up multiple connections to the backend servers something similar load balancers
SOCKS5 Proxy
- From Wikipedia
Socket Secure (SOCKS) is an Internet protocol that exchanges network packets between a client and server through a proxy server. SOCKS5 additionally provides authentication so only authorized users may access a server. Practically, a SOCKS server proxies TCP connections to an arbitrary IP address, and provides a means for UDP packets to be forwarded.
SOCKS performs at Layer 5 of the OSI model (the session layer, an intermediate layer between the presentation layer and the transport layer). SOCKS server accepts incoming client connection on TCP port 1080
My questions
- What is the use of SOCKS proxy in an web application
- Difference between TCP and SOCKS5 proxy
- In TCP/IP model is it a transport layer protocol
- What are the use cases for proxying UDP connections