IP Library Granted Patent US 9,900,341
Granted Patent B2
US 9,900,341 · App. 14/843,922 · Granted Feb 20, 2018

Web redirection for caching

Inventors: Paul Michael Martini (San Diego, CA); Peter Anthony Martini (San Diego, CA)
Assignee: iboss, Inc.
H04L63/145G06F17/30887G06F21/53H04L63/0227H04L63/1416H04L67/02H04L67/2814H04L67/2842H04L67/42H04W12/08
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 9,900,341
App. No.
14/843,922
Granted
Feb 20, 2018
Kind
B2
Abstract

This specification generally relates to using redirect messages to implement caching. One example method includes receiving from a client a first request for a network resource, the first request including an original location of the network resource; determining that a response to the first request is to be cached; sending a redirect response to the client including a cache location for the network resource; receiving a second request for the network resource from the client, the second request including the cache location; in response to receiving the second request for the network resource from the client: determining that the network resource has not been previously cached; retrieving the network resource from the original location; caching the retrieved network resource in a location associated with the cache location for the network resource; and sending the retrieved network resource to the client.

Claims (67)

1. A computer-implemented method executed by one or more processors, the method comprising:

receiving from a client a first request for a network resource, the first request including an original location of the network resource;

determining that a response to the first request is to be cached;

in response to determining that the response to the first request is to be cached, sending a redirect response to the client including a cache location for the network resource;

receiving from the client a second request for the network resource, the second request including the cache location;

in response to receiving the second request from the client for the network resource:

determining that the network resource has not been previously cached;

retrieving the network resource from the original location;

caching the retrieved network resource in a storage associated with the cache location for the network resource;

sending the retrieved network resource to the client;

receiving from the client a request for a second network resource different than the first network resource, the request including an original location of the second network resource;

determining that a response to the request is not to be cached;

in response to determining that the response to the request is not to be cached, forwarding the request to the original location of the second network resource.

2. The method of claim 1 , wherein receiving the first request for the network resource includes receiving an Hypertext Transfer Protocol (HTTP) GET request, and the original location for the network resource includes a Uniform Resource Locator (URL) for the network resource.

3. The method of claim 2 , wherein sending the redirect response to the client includes sending an HTTP redirect message to the client, and cache location includes a URL associated with a cache server and the URL for the network resource.

4. The method of claim 1 , wherein determining that the response to the first request is to be cached includes determining that a domain name associated with the network resource is included in a list of domain names to be cached.

5. The method of claim 1 , wherein determining that the response to the first request is to be cached is based at least in part on a domain name included in the original location for the network resource.

6. The method of claim 1 , wherein determining that the response to the first request is to be cached is based at least in part on a resource type associated with the network resource.

7. The method of claim 6 , wherein the resource type is one of a video file, an archive file, an executable file, or an image file.

8. The method of claim 6 , wherein the resource type associated with the network resource is determined based on a file extension included in the original location.

9. The method of claim 1 , wherein determining that the response to the first request is to be cached is based at least in part on a category associated with the network resource.

10. The method of claim 1 , wherein the client is a first client, the method further comprising:

receiving a third request for the network resource from a second client, the third request including the original location for the network resource;

sending a redirect response to the second client including the cache location for the network resource;

receiving a fourth request for the network resource from the second client, the fourth request including the cache location;

in response to receiving the fourth request for the network resource from the second client:

determining that the network resource has been previously stored; and

sending the stored network resource to the second client.

11. A non-transitory, computer-readable medium storing instructions operable when executed to cause at least one processor to perform operations comprising:

receiving from a client a first request for a network resource, the first request including an original location of the network resource;

determining that a response to the first request is to be cached;

in response to determining that the response to the first request is to be cached, sending a redirect response to the client including a cache location for the network resource;

receiving from the client a second request for the network resource, the second request including the cache location;

in response to receiving the second request from the client for the network resource:

determining that the network resource has not been previously cached;

retrieving the network resource from the original location;

caching the retrieved network resource in a storage associated with the cache location for the network resource;

sending the retrieved network resource to the client;

receiving from the client a request for a second network resource different than the first network resource, the request including an original location of the second network resource;

determining that a response to the request is not to be cached;

in response to determining that the response to the request is not to be cached, forwarding the request to the original location of the second network resource.

12. The computer-readable medium of claim 11 , wherein receiving the first request for the network resource includes receiving an Hypertext Transfer Protocol (HTTP) GET request, and the original location for the network resource includes a Uniform Resource Locator (URL) for the network resource.

13. The computer-readable medium of claim 12 , wherein sending the redirect response to the client includes sending an HTTP redirect message to the client, and cache location includes a URL associated with a cache server and the URL for the network resource.

14. The computer-readable medium of claim 11 , wherein determining that the response to the first request is to be cached includes determining that a domain name associated with the network resource is included in a list of domain names to be cached.

15. The computer-readable medium of claim 11 , wherein determining that the response to the first request is to be cached is based at least in part on a domain name included in the original location for the network resource.

16. The computer-readable medium of claim 11 , wherein determining that the response to the first request is to be cached is based at least in part on a resource type associated with the network resource.

17. The computer-readable medium of claim 16 , wherein the resource type is one of a video file, an archive file, an executable file, or an image file.

18. The computer-readable medium of claim 16 , wherein the resource type associated with the network resource is determined based on a file extension included in the original location.

19. The computer-readable medium of claim 11 , wherein determining that the response to the first request is to be cached is based at least in part on a category associated with the network resource.

20. A system comprising:

memory for storing data; and

one or more processors operable to perform operations comprising:

receiving from a client a first request for a network resource, the first request including an original location of the network resource;

determining that a response to the first request is to be cached;

in response to determining that the response to the first request is to be cached, sending a redirect response to the client including a cache location for the network resource;

receiving from the client a second request for the network resource, the second request including the cache location;

in response to receiving the second request from the client for the network resource:

determining that the network resource has not been previously cached;

retrieving the network resource from the original location;

caching the retrieved network resource in a storage associated with the cache location for the network resource;

sending the retrieved network resource to the client;

receiving from the client a request for a second network resource different than the first network resource, the request including an original location of the second network resource;

determining that a response to the request is not to be cached;

in response to determining that the response to the request is not to be cached, forwarding the request to the original location of the second network resource.

21. The method of claim 1 , wherein determining that the response to the first request is to be cached is based on a comparison of one or more aspects of the first request with one or more caching policies.

22. The computer readable medium of claim 11 , wherein determining that the response to the first request is to be cached is based on a comparison of one or more aspects of the first request with one or more caching policies.

23. The system of claim 20 , wherein determining that the response to the first request is to be cached is based on a comparison of one or more aspects of the first request with one or more caching policies.

Assignments (6)
SUPPLEMENTAL INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 28, 2023
From: IBOSS, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066158/0266 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 28, 2023
From: IBOSS, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066158/0219 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Dec 12, 2023
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK TRUST COMPANY
To: IBOSS, INC.
Reel/Frame 066140/0480 →
SECURITY INTEREST Recorded Sep 19, 2022
From: IBOSS, INC.
To: SILICON VALLEY BANK
Reel/Frame 061463/0331 →
SECURITY INTEREST Recorded Dec 16, 2020
From: IBOSS, INC.
To: SILICON VALLEY BANK
Reel/Frame 054789/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2017
From: MARTINI, PAUL MICHAEL; MARTINI, PETER ANTHONY
To: IBOSS, INC.
Reel/Frame 042620/0354 →
Continuity (3)
Continuation 14497167 · Sep 25, 2014
Provisional Application 62031080 · Jul 30, 2014
Related Publication 20160036936A1 · Feb 4, 2016