IP Library Granted Patent US 8,793,307
Granted Patent B2
US 8,793,307 · App. 12/695,996 · Granted Jul 29, 2014

Content associative caching method for web applications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,793,307
App. No.
12/695,996
Granted
Jul 29, 2014
Kind
B2
Abstract

A cache logically disposed in a communication path between a client and a server receives a request for a content item and, in response thereto, requests from the server header information concerning the content item and an initial portion of data that makes up the content item. The cache then computes a first hashing value from the header information and a second hashing value from the initial portion of data. A content identifier is created by combining the first hashing value and the second hashing value. Using the content identifier, the cache determines whether a copy of the content item is stored by the cache; and, if so provides same to the client. Otherwise, the cache requests the content item from the server and, upon receipt thereof, provides it to the client.

Claims (37)

1. A method, comprising:

responsive to a request for a content item received at a cache logically disposed in a communication path between a client and a server, requesting from the server header information concerning the content item and an initial portion of data comprising the content item, the initial portion being less than a complete file which comprises the content item;

computing a first hashing value from the header information and a second hashing value from the initial portion of data;

combining the first hashing value and the second hashing value to derive a content identifier;

determining, based on the content identifier, whether a copy of the content item is stored by the cache; and

based on said determination, either providing the copy of the content item from the cache to the client or requesting the content item from the server and, upon receipt thereof, providing same to the client.

2. The method of claim 1 , wherein requesting comprises sending an HTTP request.

3. The method of claim 2 , wherein the HTTP request comprises an HTTP GET request.

4. The method of claim 1 , wherein requesting comprises sending a byte range request.

5. A method, comprising:

storing, in a memory of a cache logically disposed between a client and a server, information associated with a request issued by the client;

at the cache, forwarding the request to the server, and, upon receiving an initial portion of a response to the request, computing a content signature for the response;

determining, based on the content signature, whether or not a cached copy of content associated with the request is already stored by the cache and

if so, returning the cached copy of the content in response to the request, otherwise continuing to download the content from the server, storing a copy of said content in the cache and responding to the request by providing a copy of the content to the client.

6. The method of claim 5 , wherein the information associated with the request comprises fields of a header associated with the request.

7. The method of claim 6 , wherein the fields of the header include some or all of a referer-uniform resource locator (URL), user agent, and request-uniform resource indicator (URI).

8. The method of claim 5 , wherein prior to forwarding the request from the cache, limiting a size of a receive window.

9. The method of claim 8 , wherein after receipt of the initial portion of the response, the cache delays advertising of the receive window until after the content signature of the response has been computed and the cache has determined whether or not the copy of the content comprising the response is already stored by the cache.

10. The method of claim 5 , wherein prior to returning the cached copy of the content, closing or suspending a connection to the server.

11. The method of claim 5 , wherein the content signature comprises a combination of a first hashing value of content type, size and type-specific metadata, and a second hashing value of the initial portion of the response.

12. The method of claim 11 , wherein the type-specific metadata is obtained from header information in the response.

13. The method of claim 11 , wherein the combination comprises one of a concatenation, an addition, or a multiplication.

14. The method of claim 11 , wherein the first and second hashing values are computed using different hashing functions.

15. The method of claim 14 , wherein a relatively weaker hashing function is used in connection with the first hashing value, and relatively stronger hashing function is used in connection with the second hashing value.

16. The method of claim 5 , wherein determining whether or not a cached copy of the content associated with the request is already stored by the cache comprises comparing the content signature with a list of content identifiers associated with content items already stored in the cache.

17. The method of claim 5 , wherein if a cached copy of the content associated with the request is not already stored by the cache, computing and storing content hint values for use in connection with subsequent requests for the content.

18. The method of claim 17 , wherein the content hint values comprise one or more of a hash of the referer-URL, a hash of a user agent type, a hash of a normalized URI, a number of arguments, and an argument name and argument value size and hash.

19. The method of claim 17 , wherein the content hint values are computed concurrently with requesting remaining portions of the content from the server.

20. The method of claim 5 , wherein the content signature comprises one of a concatenation of hashing values; or a single hashing value computed over a concatenation or other combination of content type, size and type-specific metadata along with some or all of the initial portion of the content.

21. The method of claim 18 , wherein the cache computes a heuristic distance between computed hint values and stored hint values associated with the cached content and serves that cached content having a best match in response to the request.

22. The method of claim 21 , wherein if there is more than one cache hit for the content signature, the best match is determined based a minimum heuristic distance between the computed and stored hint values.

23. The method of claim 21 , wherein processes used to determine a heuristic distance between hint values are a function of content type.

24. The method of claim 5 , wherein, if the cache determines that it stores a cached copy of the content associated with the request, before returning the cached copy to the client, validating that the cached copy was obtained from a same server or domain as the currently requested content.

25. The method of claim 5 , wherein, if the cache determines that it stores a cached copy of the content associated with the request, before returning the cached copy to the client, requesting from the server a designated portion of a file comprising the content and comparing the designated portion of the file returned by the server to a corresponding portion of the cached copy of the content.

26. The method of claim 25 , wherein the designated portion of the file comprises a byte range.

27. The method of claim 25 , wherein, if the cache determines that the cached copy of the content is the same as the designated portion of the file returned by the server, providing the cached copy of the content to the client.

28. The method of claim 25 , wherein the request for the designated portion of the file is made on a connection different from that originally used between the cache and the server to request the content.

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2016
From: BLUE COAT SYSTEMS, INC.
To: SYMANTEC CORPORATION
Reel/Frame 039851/0044 →
RELEASE OF SECURITY INTEREST Recorded Aug 1, 2016
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 039516/0929 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 30740/0181 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035797/0280 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 27727/0144 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035798/0006 →
SECURITY INTEREST Recorded May 22, 2015
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS THE COLLATERAL AGENT
Reel/Frame 035751/0348 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 3, 2013
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 030740/0181 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL RECORDED AT R/F 027727/0178 Recorded Oct 16, 2012
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 029140/0170 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Feb 16, 2012
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 027727/0144 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Feb 16, 2012
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 027727/0178 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2010
From: LU, WEI; MAHDAVI, JAMSHID; LONG, DARRELL
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 023971/0608 →