Systems and methods of providing security and reliability to proxy caches
First Claim
1. A method of providing security or reliability to serving cached objects for a session communicated via a transport layer connection between a client and a server, the method comprising:
- (a) receiving, by a device intermediary to a client and a server, a request from the client for an object from the server via a session communicated traversing the device over a transport layer connection between the client and the server;
(b) determining, by the device, that the object of the request is stored in a cache of the device;
(c) forwarding, by the device, the same request from the client for the object to the server via the session between the client and the server;
(d) deferring, by the device, serving the object from the cache to the client until the device receives via the session a response to the request for the object to the client from the server indicating that the server is transmitting the object to the client;
(e) detecting, by the device, from a portion of a response received from the server via the session that the server is transmitting the object to the client via the device in response to the request for the object forwarded by the device;
(f) determining, by the device, to serve the object from the cache to the client based on the detection; and
(g) serving, by the device, via the session the object from the cache instead of the object currently being received by the device.
8 Assignments
0 Petitions
Accused Products
Abstract
The present solution provides a variety of techniques for accelerating and optimizing network traffic, such as HTTP based network traffic. The solution described herein provides techniques in the areas of proxy caching, protocol acceleration, domain name resolution acceleration as well as compression improvements. In some cases, the present solution provides various prefetching and/or prefreshening techniques to improve intermediary or proxy caching, such as HTTP proxy caching. In other cases, the present solution provides techniques for accelerating a protocol by improving the efficiency of obtaining and servicing data from an originating server to server to clients. In another cases, the present solution accelerates domain name resolution more quickly. As every HTTP access starts with a URL that includes a hostname that must be resolved via domain name resolution into an IP address, the present solution helps accelerate HTTP access. In some cases, the present solution improves compression techniques by prefetching non-cacheable and cacheable content to use for compressing network traffic, such as HTTP. The acceleration and optimization techniques described herein may be deployed on the client as a client agent or as part of a browser, as well as on any type and form of intermediary device, such as an appliance, proxying device or any type of interception caching and/or proxying device.
-
Citations
48 Claims
-
1. A method of providing security or reliability to serving cached objects for a session communicated via a transport layer connection between a client and a server, the method comprising:
-
(a) receiving, by a device intermediary to a client and a server, a request from the client for an object from the server via a session communicated traversing the device over a transport layer connection between the client and the server; (b) determining, by the device, that the object of the request is stored in a cache of the device; (c) forwarding, by the device, the same request from the client for the object to the server via the session between the client and the server; (d) deferring, by the device, serving the object from the cache to the client until the device receives via the session a response to the request for the object to the client from the server indicating that the server is transmitting the object to the client; (e) detecting, by the device, from a portion of a response received from the server via the session that the server is transmitting the object to the client via the device in response to the request for the object forwarded by the device; (f) determining, by the device, to serve the object from the cache to the client based on the detection; and (g) serving, by the device, via the session the object from the cache instead of the object currently being received by the device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An appliance for providing security or reliability to serving cached objects for a session communicated via a transport layer connection between a client and a server, the appliance comprising:
-
means for receiving, by an appliance intermediary to a client and a server, a request from the client for an object from the server via a session communicated traversing the appliance over a transport layer connection between the client and the server; means for determining, by the appliance, that the object of the request is stored in a cache of the appliance; means for forwarding, by the appliance, the same request from the client for the object to the server via the session between the client and the server; means for deferring, by the appliance serving the object from the cache to the client until the device receives via the session a response to the request to the client for the object from the server indicating that the server is transmitting the object to the client; means for detecting, by the appliance, from a portion of the response received from the server via the session that the server is transmitting the object to the client in response to the request for the object forwarded by the device; and means for determining, by the appliance, to serve the object from the cache based on the response received from the server; and means for serving, by the appliance, via the session the object from the cache instead of the object currently being received by the appliance. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method of providing security or reliability to proxying a connection between a client and a server, the method comprising the steps of:
-
(a) forwarding, by a device intermediary to a client and a server, to the server a transport layer connection request received via the device from the client to the server; (b) deferring, by the device, acceptance of the transport layer connection as a connection to proxy between the client and the server until receiving a response from the server to the transport layer connection request of the client; (c) identifying, by the device, that the server accepts the transport layer connection of the client based on a response, received by the device from the server to the transport layer connection request, the response comprising a SYN-ACK packet; and (d) determining, by the device, to proxy the transport layer connection between the client and the server in response to identifying that the server accepts the transport layer connection of the client. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. An appliance providing security or reliability to proxying a connection between a client and a server, the appliance comprising:
-
means for forwarding to a server a transport layer connection request received via the appliance from a client to a server; means for deferring acceptance of the transport layer connection as a connection to proxy between the client and the server until receiving a response from the server to the transport layer connection request of the client; means for identifying that the server accepts the transport layer connection of the client based on a received response comprising a SYN-ACK packet from the server to the transport layer connection request; and means for determining to proxy the transport layer connection between the client and the server in response to identifying that the server accepts the transport layer connection of the client. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. A method of providing security or reliability to serving cached objects for a session communicated via a transport layer connection between a client and a server, the method comprising:
-
(a) receiving, by a device intermediary to a client and a server, a client'"'"'s request for an object of the server via a session communicated traversing the device over a transport layer connection between the client and the server; (b) determining, by the device, that the object is stored in a cache; (c) forwarding, by the device, via the session the client'"'"'s request for the object to the server; (d) deferring, by the device, serving the object to the client from the cache until the device receives via the session a response indicating that the server is serving the object to the client responsive to the client'"'"'s request for the object; (e) detecting, by the device, from a portion of a response from the server via the session that the server is transmitting the object to the client in response to the client'"'"'s request for the object; (f) determining, by the device based on the detection, to serve the object from the cache to the client responsive to the client'"'"'s request; and (g) serving, by the device, via the session the object from the cache instead of the object being served from the server.
-
Specification