It has become commonplace in today's networked environments to deploy devices or services known as proxies which act as intermediaries between interactions associated with clients and other external sites or services. Generally, a proxy separates a client from resources which are located externally or remotely from the client's local networking environment. In other scenarios, a proxy acts as a front-in manager for a remote service. Proxy services can also be associated with firewalls and gateways.
There are three types of proxies. A forward proxy is a service that the client is specifically configured to interact with. That is, with a forward proxy the client knows the identity of the forward proxy or the port over which the forward proxy is to be communicated with. A transparent proxy is a service which the client is not aware of; rather, communications originating from the client and coming into the client are routed to the transparent proxy for processing on behalf of the unknowing client. Routing to a transparent proxy can be achieved with a number of other devices, such as network switches, hubs, bridges, routers, etc. Another type of proxy is a reverse proxy; a reverse proxy resides externally to a client's local networking environment and presents itself to the client as if it is a particular origin server or service. A reverse proxy is useful for managing security of an origin service and for performing load balancing on behalf of an origin service.
Typically, clients interact, either directly or indirectly, with a proxy using secure communication protocols or insecure communication protocols. One popular secure communication protocol used by clients, which are World-Wide Web (WWW) browsers, is Hyper Text Transfer Protocol (HTTP) over Secure Sockets Layer (SSL) (referred to as HTTPS), or Transport Layer Security (TLS). The most popular insecure communication protocol used with the WWW is simply HTTP. Secure communications and insecure communications are associated with different defined communication ports of a communication device. For example, HTTP generally occurs over port 80, whereas HTTPS generally occurs over port 443. Moreover, secure communications are often encrypted and conventionally used for creating a secure communication tunnel between the parties engaging in secure communications.
Conventionally, managing secure communications between a client and an origin service is straightforward. A client knowingly or unknowingly uses a forward (knowingly) or transparent (unknowingly) proxy service to establish a secure communication tunnel using encrypted communications over a defined port to interact with a desired origin service, which resides externally to the client's local networked environment. The problem with conventional approaches is that there is no secure and practical way to accelerate and more efficiently deliver data associated with the desired origin service to the requesting client. This is because conventional proxy services are not capable of locally caching data received from a remote origin service when secure communications are being used, because of traditional communication tunnels which are used for conventional secure communications.
Thus, improved techniques for managing and accelerating the deliver of data associated with remote sites are needed.