libwww, the WWW Common Library, which handles the different communication protocols used in the Web, namely HTTP, FTP, Gopher, News and WAIS.
The entire proxy support is handled automatically for clients using
libwww. Environment variables are used to control the
library. There is an individual environment variable for each access
variables are set to the URL pointing to the proxy server that is
supposed to serve requests of that protocol, e.g.
ftp_proxy=http://www_proxy.domain:911/ export ftp_proxyUsually the proxy server is the same for all the protocols, but does not have to be.
When the environment variable for a given protocol is set, the
libwww code causes a connection to always be made to the
proxy rather than directly to the remote server. Some clients also
provide additional means of configuring the client to use a proxy
server (e.g. Mosaic
for X can use X resources and Mosaic
for Windows uses settings in its initialization file).
The latest (as of April 1994)
libwww (version 2.15) also
supports an exception list so clients don't have to always go through
the proxy. This is useful for avoiding the proxy for local servers
where the clients can make a direct connection.
Another difference in the protocol between the client and the proxy is
that the requested URL has to be a full URL when it is requested from
the proxy server. These are the only differences between a normal and
proxied HTTP transaction. The simplicity of proxy support in a Web
client means that even clients not based on
easily support the proxy.
Proxy support is implemented only for HTTP/1.0 on the server side so
clients must use that protocol. This is not a problem because
libwww does this automatically, and most clients (if not
all) have already been upgraded to use HTTP/1.0.