Technical Details

When a normal HTTP request is made by a client, the HTTP server gets only the path and keyword portion of the requested URL (Fig. 2); other parts, namely the protocol specifier "http:" and the hostname are obviously clear to the remote HTTP server - it knows that it is an HTTP server, and it knows the host machine that it is running on. The requested path specifies the document or a CGI script on the local filesystem of the server, or some other resource available from that server.

When a client sends a request to a proxy server the situation is slightly different. The client always uses HTTP for transactions with the proxy server, even when accessing a resource served by a remote server using another protocol, like Gopher or FTP.

However, instead of specifying only the pathname and possibly search keywords to the proxy server, the full URL is specified (Fig. 3 and Fig. 4). This way the proxy server has all the information necessary to make the actual request to the remote server specified in the request URL, using the protocol specified in the URL.

From this point on the proxy server acts like a client to retrieve the document; it calls the same protocol module of libwww that the client would call to perform the retrieval. However, the "presentation" on the proxy actually means the creation of an HTTP reply containing the requested document to the client. For example, a Gopher or FTP directory listing is returned as an HTML document.

Overview Previous Next
Ari Luotonen - Kevin Altis