# US 2018/0324272 A1 · System and method of providing web content using a proxy cache

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0324272 A1
- Document ID: US20180324272A1
- Status: Published application
- Kind: A1
- Application number: 15/589,444
- Filed: 2017-05-08
- Published: 2018-11-08
- Earliest claimed: 2017-05-08
- Assignees: salesforce.com, inc.
- Applicants: salesforce.com, inc.
- Inventors: Brian Toal; Paymon Teyer
- Web page: https://patentgrep.com/patent/US20180324272A1

## CPC

- H04L 63/00: {Network architectures or network communication protocols for network security (cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00; network architectures or network communication protocols for wireless network security H04W12/00; security arrangements for protecting computers or computer systems against unauthorised activity G06F21/00)}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 67/5682: Policies or rules for updating, deleting or replacing the stored data
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A computer-implemented method of providing content using a request-response protocol is provided. The method comprises storing a data object associated with a key, receiving a first response message from a server containing an invalidate parameter wherein the invalidate parameter includes a pattern that matches the key, and invalidating the stored data object associated with the key in response to the invalidate parameter. A computing system comprising one or more processors and non-transitory computer readable storage medium embodying programming instructions configurable to cause the one or more processors to implement a proxy cache is also provided. The proxy cache is configured to store a data object associated with a key, receive a first response message from a server containing an invalidate parameter wherein the invalidate parameter includes a pattern that matches the key, and invalidate the stored data object associated with the key in response to the invalidate parameter.

## Claims

### Claim 1

A computer-implemented method of providing content using a request-response protocol, the method comprising:
storing in a cache storage medium a data object associated with a key and provided by a server in response to a prior request message;
receiving a first response message from the server containing an invalidate parameter, the invalidate parameter including a pattern that matches the key that identifies the stored data object; and
invalidating the stored data object associated with the key in response to the invalidate parameter.

### Claim 2 (depends on 1)

The method of claim 1 further comprising:
receiving a second request message from a second client directed to the server, the second request message directed to the data object associated with the key;
forwarding the second request message to the server;
receiving a second response message from the server containing a second data object in response to the second request message;
returning the second response message containing the second data object to the second client in response the second request message;
associating the second data object with the key; and
storing the second data object associated with the key in the cache storage medium.

### Claim 3 (depends on 1)

The method of claim 1, wherein the invalidate parameter is provided as a hypertext transfer protocol (HTTP) header parameter.

### Claim 4 (depends on 1)

The method of claim 1, wherein the pattern matches a plurality of keys and wherein invalidating the stored data object comprises invalidating a plurality of stored data objects associated with the plurality of keys in response to the invalidate parameter.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
receiving a third response message that includes a third data object and an observable parameter, the observable parameter identifying an observable object that the third data object is configured to observe for possible changes;
caching the third data object; and
associating the cached third data object with the observable object.

### Claim 6 (depends on 5)

The method of claim 5, wherein the observable parameter is provided as a hypertext transfer protocol (HTTP) header parameter.

### Claim 7 (depends on 5)

The method of claim 5, further comprising:
receiving a fourth response message that includes a fourth data object and the observable parameter;
caching the fourth data object; and
associating the cached fourth data object with the observable object.

### Claim 8 (depends on 7)

The method of claim 7, further comprising generating an object graph of cached responses that are associated with the observable object.

### Claim 9 (depends on 5)

The method of claim 5, further comprising:
receiving a third response message that includes a notify parameter, the notify parameter identifying an observable object that has changed.

### Claim 10 (depends on 9)

The method of claim 9, further comprising
invalidating the third data object in response to receiving the notify parameter.

### Claim 11 (depends on 7)

The method of claim 7, further comprising
receiving a sixth response message that includes a notify parameter, the notify parameter identifying an observable object that has changed; and
invalidating the third data object and the fourth data object in response to receiving the notify parameter.

### Claim 12 (depends on 11)

The method of claim 11 further comprising:
receiving a seventh request message from a third client directed to the server, the seventh request message seeking the third data object, the third data object having been associated with a second key;
forwarding the seventh request message to the server;
receiving a seventh response message from the server containing a fifth data object in response to the seventh request message; and
returning the seventh response message containing the fifth data object to the third client in response the seventh request message.

### Claim 13 (depends on 12)

The method of claim 12, further comprising:
associating the fifth data object with the second key; and
storing the fifth data object in the cache storage medium.

### Claim 14 (depends on 9)

The method of claim 9, wherein the notify parameter is provided as a hypertext transfer protocol (HTTP) header parameter.

### Claim 15

A computing system comprising:
one or more processors;
non-transitory computer readable storage medium embodying programming instructions configurable to cause the one or more processors to implement a proxy cache, the proxy cache configured to:
store in a cache storage medium a data object associated with a key and provided by a server in response to a prior request message;
receive a first response message from the server containing an invalidate parameter, the invalidate parameter including a pattern that matches the key that identifies the stored data object; and
invalidate the stored data object associated with the key in response to the invalidate parameter.

### Claim 16 (depends on 15)

The system of claim 15, wherein the proxy cache is further configured to:
receive a second request message from a second client directed to the server, the second request message directed to the data object associated with the key;
forward the second request message to the server;
receive a second response message from the server containing a second data object in response to the second request message;
return the second response message containing the second data object to the second client in response the second request message;
associate the second data object with the key; and
store the second data object associated with the key in the cache storage medium.

### Claim 17 (depends on 15)

The system of claim 15, wherein the proxy cache is further configured to:
receive a third response message that includes a third data object and an observable parameter, the observable parameter identifying an observable object that the third data object is configured to observe for possible changes;
cache the third data object; and
associate the cached third data object with the observable object.

### Claim 18 (depends on 17)

The system of claim 17, wherein the proxy cache is further configured to:
receive a fourth response message that includes a notify parameter, the notify parameter indicating that the observable object has changed; and
invalidate the third data object in response to receiving the notify parameter.

### Claim 19

A non-transitory computer readable storage medium embodying programming instructions configurable to perform a method, the method comprising:
storing in a cache storage medium a data object associated with a key and provided by a server in response to a prior request message;
receiving a first response message from the server containing an invalidate parameter, the invalidate parameter including a pattern that matches the key that identifies the stored data object; and
invalidating the stored data object associated with the key in response to the invalidate parameter.

### Claim 20 (depends on 19)

The non-transient computer readable media of claim 19 wherein the method further comprises:
receiving a second response message that includes a second data object and an observable parameter, the observable parameter identifying an observable object that the second data object is configured to observe for possible changes;
caching the second data object;
associating the cached second data object with the observable object;
receiving a third response message that includes a notify parameter, the notify parameter indicating that the observable object has changed; and
invalidating the second data object in response to receiving the notify parameter.
