HTTP Proxy Servers and Proxying
(Page 3 of 3)
Important Proxying Issues
As I mentioned above, there are a few different issues that come into play when proxies are used in HTTP. Here are some of the more important ones, and how HTTP deals with them. Again, for much more information on proxying, please refer to your trusty copy of RFC 2616.
Issues arise when a client and server dont use the same version of HTTP, or dont support the same features; for example, some servers may not support all of the methods that a client may try to use. This is made all the more complex when a proxy enters the picture. Of particular concern is the situation where a client and server may agree on a particular feature that the proxy does not. The proxy must make sure that it passes along headers or other elements that it may not comprehend.
The use of proxy servers often introduces new authentication or security requirements. In addition to authenticating with an end server, the proxy may specify that the client needs to present separate authentication credentials to it as well. This is done using the HTTP Proxy-Authorization and Proxy-Authenticate headers; see the topic on HTTP security for details.
Not only do both caching and proxying both complicate HTTP, they can complicate each other. Many of the issues in handling caching, such as header caching, expiration and validation, become more complex when proxies are involved. Some of the Cache-Control general header directives are specific to proxying.
Another issue is that the use of proxying and caching together can lead to distortions in the apparent number of times that a Web resource is accessed. This is important in situations where Web pages are supported by advertising, based on the number of times the page is accessed. Sometimes in this situation, special codes are placed in URLs called cache busters are used to force pages not to be stored in shared caches.
Content encodings are applied end-to-end and so should not be affected by proxies. Transfer encoding is done hop-by-hop, so a proxy may use different encodings in handling different transfers of a single request or response.
It is useful in some circumstances, especially when multiple proxies may be in the request/response chain, to be able to trace what proxies have processed a particular message. To this end, HTTP/1.1 requires that each proxy that handles a message identify itself in the Via header.
Home - Table Of Contents - Contact Us
The TCP/IP Guide (http://www.TCPIPGuide.com)
Version 3.0 - Version Date: September 20, 2005
© Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved.
Not responsible for any loss resulting from the use of this site.