Why are all proxy servers implemented on the application level of the OSI model, and not the network level? Is it possible to implement a proxy server on the network level? Such as on the gateway server?
Corporate proxies are almost always used to route all external traffic through a server before leaving the local network.
My understanding is that, theoretically speaking, this should be handled on the network level and not the application level. Practically speaking, having proxy settings configured on the application level is problematic:
- Proxy settings are not network specific.
- Proxy settings are not provided during network connection handshake (i.e the DHCP handshake)
- Proxy settings tend to linger. This causes delays or prevents connections when the proxy server is no longer accessible (e.g. the client is connecting to the internet on a different network)
I appreciate that there are valid use cases for proxies on the application level. However, I cannot help but think that the most common use of proxies is a bad application of the technology.