Using entity tags (ETags) in a hierarchical HTTP proxy cache to reduce network traffic
First Claim
Patent Images
1. A method for validating a web cache, the method comprising the steps of:
- an intermediate computer, connectedly disposed between an origin server computer and a client computer, receiving a request for a resource stored on the origin server computer from the client computer;
the intermediate computer forwarding the request for the resource to the origin server computer and receiving a first copy of the resource from the origin server computer;
the intermediate computer determining that the received first copy of the resource does not have an associated ETag, and in response, generating a first ETag for the first copy of the resource received from the origin server computer, caching at least the generated first ETag, and sending the first copy of the resource to the requesting client computer;
the intermediate computer receiving a subsequent request from the client computer, wherein the subsequent request seeks an updated version of the resource stored on the origin server computer and, if no updated version of the resource exists, validation of the client computer'"'"'s cached version of the resource, the subsequent request including the first ETag, now corresponding to the cached version of the resource on the client computer;
responsive to receiving the subsequent request, the intermediate computer requesting and receiving a second copy of the resource from the origin server computer, irrespective of whether the resource on the origin server has been modified since the previous request for the resource;
subsequent to receiving the second copy of the resource from the origin server computer, the intermediate computer generating a new ETag for the second copy of the resource;
the intermediate computer comparing the new ETag for the second copy of the resource with the first ETag to determine at the intermediate computer whether the resource on the origin server matches the cached version of the resource on the client computer;
if the intermediate computer determines that the new ETag and the first ETag match, the intermediate computer sending a response to the client computer indicating that the cached version of the resource on the client computer is up to date; and
if the intermediate computer determines that the new ETag does not match the first ETag, the intermediate computer caching at least the new ETag, and sending the second copy of the resource to the requesting client computer.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is a program for validating a web cache independent of an origin server. A computer in between a client computer and the origin server computer receives a request for a resource and an entity tag (ETag) corresponding to the request. The computer forwards the request to the origin server and subsequently receives the resource. The computer generates an ETag for the received resource and compares the generated ETag to the ETag corresponding to the request. If the ETags match, the computer sends an indication toward the client computer that the resource has not been modified.
75 Citations
8 Claims
-
1. A method for validating a web cache, the method comprising the steps of:
-
an intermediate computer, connectedly disposed between an origin server computer and a client computer, receiving a request for a resource stored on the origin server computer from the client computer; the intermediate computer forwarding the request for the resource to the origin server computer and receiving a first copy of the resource from the origin server computer; the intermediate computer determining that the received first copy of the resource does not have an associated ETag, and in response, generating a first ETag for the first copy of the resource received from the origin server computer, caching at least the generated first ETag, and sending the first copy of the resource to the requesting client computer; the intermediate computer receiving a subsequent request from the client computer, wherein the subsequent request seeks an updated version of the resource stored on the origin server computer and, if no updated version of the resource exists, validation of the client computer'"'"'s cached version of the resource, the subsequent request including the first ETag, now corresponding to the cached version of the resource on the client computer; responsive to receiving the subsequent request, the intermediate computer requesting and receiving a second copy of the resource from the origin server computer, irrespective of whether the resource on the origin server has been modified since the previous request for the resource; subsequent to receiving the second copy of the resource from the origin server computer, the intermediate computer generating a new ETag for the second copy of the resource; the intermediate computer comparing the new ETag for the second copy of the resource with the first ETag to determine at the intermediate computer whether the resource on the origin server matches the cached version of the resource on the client computer; if the intermediate computer determines that the new ETag and the first ETag match, the intermediate computer sending a response to the client computer indicating that the cached version of the resource on the client computer is up to date; and if the intermediate computer determines that the new ETag does not match the first ETag, the intermediate computer caching at least the new ETag, and sending the second copy of the resource to the requesting client computer. - View Dependent Claims (2, 3, 4)
-
-
5. A computer program product for validating a web cache, the computer program product comprising:
-
one or more non-volatile computer-readable tangible storage devices and program instructions stored on at least one of the one or more non-volatile storage device, the program instructions comprising; program instructions to receive, at an intermediate computer, a request for a resource stored on an origin server computer from a client computer; program instructions to forward the request for the resource to the origin server computer and receive a first copy of the resource from the origin server computer; program instructions to determine that the received first copy of the resource does not have an associated ETag, and in response, generate a first ETag for the first copy of the resource received from the origin server computer, cache at least the generated first ETag at the intermediate computer, and send the first copy of the resource to the requesting client computer; program instructions to receive a subsequent request from the client computer, wherein the subsequent request seeks an updated version of the resource stored on the origin server computer and, if no updated version of the resource exists, validation of the client computer'"'"'s cached version of the resource, the subsequent request including the first ETag, now corresponding to the cached version of the resource on the client computer; program instructions to, responsive to receiving the subsequent request, request and receive a second copy of the resource from the origin server computer, irrespective of whether the resource on the origin server has been modified since the previous request for the resource;
program instructions to, subsequent to receiving the second copy of the resource from the origin server computer, generate a new ETag for the second copy of the resource;program instructions to compare the new ETag for the second copy of the resource with the first ETag to determine at the intermediate computer whether the resource on the origin server matches the cached version of the resource on the client computer; program instructions to, in response to determining that the new ETag and the first ETag match, send a response from the intermediate computer to the client computer indicating that the cached version of the resource on the client computer is up to date; and program instructions to, in response to determining that the new ETag and the first ETag do not match, cache at least the new ETag, and send the second copy of the resource to the requesting client computer. - View Dependent Claims (6, 7)
-
-
8. A computer system for validating a web cache, the computer system comprising:
-
one or more processors, one or more computer-readable tangible storage devices, and program instructions stored on at least one of the one or more storage device for execution by at least one of the one or more processors, the program instructions comprising; program instructions to receive, at an intermediate computer, a request for a resource stored on an origin server computer from a client computer; program instructions to forward the request for the resource to the origin server computer and receive a first copy of the resource from the origin server computer; program instructions to determine that the received first copy of the resource does not have an associated ETag, and in response, generate a first ETag for the first copy of the resource received from the origin server computer, cache at least the generated first ETag at the intermediate computer, and send the first copy of the resource to the requesting client computer; program instructions to receive a subsequent request from the client computer, wherein the subsequent request seeks an updated version of the resource stored on the origin server computer and, if no updated version of the resource exists, validation of the client computer'"'"'s cached version of the resource, the subsequent request including the first ETag, now corresponding to the cached version of the resource on the client computer; program instructions to, responsive to receiving the subsequent request, request and receive a second copy of the resource from the origin server computer, irrespective of whether the resource on the origin server has been modified since the previous request for the resource;
program instructions to, subsequent to receiving the second copy of the resource from the origin server computer, generate a new ETag for the second copy of the resource;program instructions to compare the new ETag for the second copy of the resource with the first ETag to determine at the intermediate computer whether the resource on the origin server matches the cached version of the resource on the client computer; program instructions to, in response to determining that the new ETag and the first ETag match, send a response from the intermediate computer to the client computer indicating that the cached version of the resource on the client computer is up to date; and program instructions to, in response to determining that the new ETag and the first ETag do not match, cache at least the new ETag, and send the second copy of the resource to the requesting client computer.
-
Specification