IP Library Granted Patent US 8,892,680
Granted Patent B2
US 8,892,680 · App. 13/013,649 · Granted Nov 18, 2014

System and method for caching content elements with dynamic URLs

Inventors: Stephen Wright (Belfast, GB); Robert Logue (Belfast, GB)
Assignee: Openwave Mobility, Inc.
G06F17/30902H04L29/0809Y10S705/901
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,892,680
App. No.
13/013,649
Granted
Nov 18, 2014
Kind
B2
Abstract

A system and method for allowing requests generated as a result of dynamic URLs to be efficiently looked up in a cache are provided. The system and method involve receiving a request for a content element, the request being generated from a dynamic URL. A static content element identifier is generated from the request. In an embodiment, the static content element identifier includes only the content identification parameters and the dynamic parameters are removed. The static content element identifier is then used to determine whether the content element is in the cache.

Claims (39)

1. A method comprising:

receiving a Hypertext Transfer Protocol (HTTP) request from a user device for a content element, the HTTP request being generated from a dynamic Uniform Resource Locator (URL), wherein the HTTP request indicates a GET method for retrieving the requested content;

generating a static content element identifier from the HTTP request by removing dynamic parameters from the HTTP request;

determining whether the content element is in a cache using the static content element identifier, wherein the cache is remote from the client device;

modifying the HTTP request from indicating the GET method to indicating a HEAD method in response to determining that the content element is in the cache;

sending the HTTP request indicating the HEAD method to a content provider at a host address given in the URL for the content provider to determine whether the content element can be served to the user device from the cache; and

receiving a HTTP response from the content provider, the HTTP response comprising a header, the header indicating whether the user device has access privileges to the content element.

2. The method of claim 1 , wherein the HTTP request includes content identification parameters and context parameters that were present in the dynamic URL, wherein the content identification parameters define the requested content element and the context parameters define the dynamic parameters, wherein generating the static content element identifier by removing dynamic parameters from the HTTP request comprises removing the context parameters.

3. The method of claim 1 , wherein the determination of whether the content element is in the cache is performed using a cache lookup table, the cache lookup table including a list of content element identifiers versus pointers to content elements.

4. The method of claim 3 , wherein if the static content element identifier matches one of the content element identifiers in the cache lookup table, the content element is determined to be present in cache.

5. The method of claim 3 , wherein if the static content element identifier does not match one of the content element identifiers in the cache lookup table, the content element is retrieved from the content provider and is placed in the cache.

6. The method of claim 1 , wherein the HTTP response includes an entity tag relating to the content element, wherein the entity tag is used to determine whether the content element in the cache is the same version as a content element stored at the content provider.

7. A non-transitory computer-readable storage medium comprising a set of computer-readable instructions stored thereon, which, when executed by a processing system, cause the processing system to receive a Hypertext Transfer Protocol (HTTP) request from a user device for a content element, the request being generated from a dynamic Uniform Resource Locator (URL), wherein the HTTP request indicates a GET method for retrieving the requested content;

generate a static content element identifier from the HTTP request by removing dynamic parameters from the HTTP request;

determine whether the content element is in a cache using the static content element identifier, wherein the cache is remote from the user device;

modify the HTTP request from indicating the GET method to indicating a HEAD method in responsive to determining that the content element is in the cache;

send the HTTP request indicating the HEAD method to a content provider at a host address given in the URL for the content provider to determine whether the content element can be served to the user device from the cache; and

receive a HTTP response from the content provider, the HTTP response comprising a header, the header indicating whether the user device has access privileges to the content element.

8. The non-transitory computer-readable storage medium of claim 7 , wherein the request includes content identification parameters and context parameters that were present in the dynamic URL, wherein the content identification parameters define the requested content element and the context parameters define dynamic parameters, wherein generating the static content element identifier by removing dynamic parameters from the HTTP request comprises removing the context parameters.

9. The non-transitory computer-readable storage medium of claim 7 , wherein the determination of whether the content element is in the cache is performed using a cache lookup table, the cache lookup table comprising a list of content element identifiers versus pointers to content elements.

10. The non-transitory computer-readable storage medium of claim 9 , wherein if the static content element identifier matches one of the content element identifiers in the cache lookup table, the content element is determined to be present in the cache.

11. The non-transitory computer-readable storage medium of claim 9 , wherein if the static content element identifier does not match one of the content element identifiers in the cache lookup table, the content element is retrieved from the content provider and is placed in the cache.

12. An apparatus comprising:

a processor; and

a memory for storing executable instructions, which when executed by the processor perform the steps of:

receiving a Hypertext Transfer Protocol (HTTP) request from a user device for a content element, the HTTP request being generated from a dynamic Uniform Resource Locator (URL), wherein the HTTP request indicates a GET method for retrieving the requested content;

generating a static content element identifier from the HTTP request by removing dynamic parameters from the HTTP request;

determining whether the content element is in a cache using the static content element identifier, wherein the cache is remote from the user device;

modifying the HTTP request from indicating the GET method to indicating a HEAD method in response to determining that the content element is in the cache;

sending the HTTP request indicating the HEAD method to a content provider at a host address given in the URL for the content provider to determine whether the content element can be served to the user device from the cache; and

receiving a HTTP response from the content provider, the HTTP response comprising a header, the header indicating whether the user device has access privileges to the content element.

13. The apparatus of claim 12 , wherein the HTTP request includes content identification parameters and context parameters, wherein the content identification parameters define the requested content element and the context parameters define dynamic parameters, and wherein generating the static content element identifier by removing dynamic parameters from the HTTP request comprises removing the context parameters.

14. The apparatus of claim 12 further comprising a cache lookup table of content element identifiers versus pointers to content elements.

15. The apparatus of claim 14 , wherein the content element is looked up in the cache using the cache lookup table, wherein if the static content element identifier matches one of the content element identifiers of the cache lookup table, the content element is determined to be present in the cache.

16. The apparatus of claim 14 , wherein the content element is looked up in the cache using the cache lookup table, wherein if the static content element identifier does not match one of the content element identifiers, the content element is requested and upon receipt is placed in the cache, and further wherein the static content element identifier is added to the table with a corresponding pointer to the content element in the cache.

17. The method of claim 5 , wherein the static content element identifier is added to the cache lookup table with a corresponding pointer to the content element that has been placed in the cache.

18. The method of claim 1 , further comprising:

sending the content element from the cache to the user device in response to the header of the HTTP response indicating that the user device has access privileges to the content element.

19. The method of claim 1 , wherein the HTTP response includes an entity tag relating to the content element, the entity tag indicating one or more of: a file size, a file type, a creation date and an expiry date of the content element.

Assignments (3)
MERGER Recorded Oct 8, 2012
From: OPENWAVE SYSTEMS INC.
To: UNWIRED PLANET, INC.
Reel/Frame 029090/0626 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2012
From: UNWIRED PLANET, INC. (F/K/A OPENWAVE SYSTEMS INC.)
To: OPENWAVE MOBILITY, INC.
Reel/Frame 028410/0867 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2011
From: WRIGHT, STEPHEN; LOGUE, ROBERT
To: OPENWAVE SYSTEMS INC.
Reel/Frame 025696/0165 →
Continuity (1)
Related Publication 20120191804A1 · Jul 26, 2012