# US 7,096,418 B1 · Dynamic web page cache

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

- Number: US 7,096,418 B1
- Document ID: US7096418B1
- Status: Granted
- Kind: B1
- Application number: 09/591,986
- Filed: 2000-06-12
- Granted: 2006-08-22
- Earliest claimed: 2000-02-02
- Assignees: Persistence Software, Inc.
- Inventors: Vivek Singhal; Ian Emmons; Richard Jensen
- Web page: https://patentgrep.com/patent/US7096418B1

## CPC

- G06F 16/9574: {of access to content, e.g. by caching}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A Web page cache that stores Web pages such that servers will be able to retrieve valid dynamic pages without going to a dynamic content server or origin Web server for the page every time a user requests that dynamic page. The dynamic content cache receives information that defines data upon which each dynamic page is dependent, such that when the value of any dependency data item changes, the associated dynamic page is marked as invalid or deleted. The dynamic page cache stores dependency data, receives change event information, and indicates when pages in the cache are invalidated or need to be refreshed.

## Claims

### Claim 1

A method of caching dynamic data pages, the method comprising:
a) receiving a data page from an origin server, wherein said data page includes page dependency data that contains one or more dependencies such that each dependency indicates an underlying data source which said data page is dependent on, wherein said page dependency data are generated by a Request-Based dependency generator which uses a configuration file corresponding to the origin server, wherein the configuration file is the only configuration file corresponding to the origin server;
b) storing said data page;
c) storing said page dependency data;
d) receiving an event;
e) determining if said event changes an underlying data source corresponding to one of said page dependency data; and
f) updating the cache by refreshing or deleting said data page if said event changes one of the page dependency data.

### Claim 2 (depends on 1)

A method as defined in claim 1, where said page dependency data are written in HTML or XML.

### Claim 3 (depends on 1)

A method as defined in claim 1, wherein said page dependency data are listed between specially delimited comments appended to the end of said data page.

### Claim 4 (depends on 3)

A method as defined in claim 3, where said Request-Based dependency generator uses a URL request of said data page.

### Claim 5 (depends on 1)

A method as defined in claim 1, where said page dependency data are generated by a script-based dependency generator.

### Claim 6 (depends on 5)

A method as defined in claim 5, where said page dependency data are encoded in said data page by a script-based dependency generator.

### Claim 7 (depends on 1)

A method as defined in claim 1, where said page dependency data are manually encoded into a data file.

### Claim 8 (depends on 1)

A method as defined in claim 1, where said data page and said page dependency data are stored in one or more files.

### Claim 9 (depends on 1)

A method as defined in claim 1, where said storing of said data page at the proxy is in response to data in a configuration file.

### Claim 10 (depends on 1)

A method as defined in claim 1, where send event is received incorporated in an event message.

### Claim 11 (depends on 1)

A method as defined in claim 1, where said event is written in HTML or XML.

### Claim 12 (depends on 1)

A method as defined in claim 1, where said event came from a Request-Based event generator.

### Claim 13 (depends on 12)

A method as defined in claim 12, where said Request-Based event generator uses a configuration file.

### Claim 14 (depends on 12)

A method as defined in claim 12, where said Request-Based event generator uses a URL request of said data page.

### Claim 15 (depends on 14)

A method as defined in claim 14, where said URL request is parsed to obtain parameters.

### Claim 16 (depends on 14)

A method as defined in claim 14, where said tJRL request includes request header information.

### Claim 17 (depends on 16)

A method as defined in claim 16, where said tJRL request is parsed to obtain parameters.

### Claim 18 (depends on 1)

A method as defined in claim 1, where said event came from a script-based event generator.

### Claim 19 (depends on 1)

A method as defined in claim 1, where said event came from a trigger-based event generator.

### Claim 20 (depends on 1)

A method as defined in claim 1, where said event came from polling event generator.

### Claim 21 (depends on 1)

A method as defined in claim 1, where said event came from a custom event generator.

### Claim 22 (depends on 1)

A method as defined in claim 1, where said determination if said event changes one of the page dependency data associated with said data page is done by a change event evaluator.

### Claim 23 (depends on 1)

A method as defined in claim 1, where said determination by the change event evaluator is done by matching said page dependency data with said event.

### Claim 24 (depends on 1)

A method as defined in claim 1, where said event was generated by Request-Based event generator and sent to a change event evaluator.

### Claim 25 (depends on 1)

A method as defined in claim 1, where said updating the cache involves keeping the index of URL addresses and page dependency data up-to-date.

### Claim 26

A computer software product for use in a computer system that executes program steps recorded in a computer-readable media to perform a method for caching dynamic data pages comprising:
a) a recordable media; and
b) a program of computer-readable instructions executable by the computer to perform method steps comprising:
i) receiving a data page from an origin server, wherein said data page includes page dependency data that contains one or more dependencies such that each dependency indicates an underlying data source which the said data page is dependent on, wherein said page dependency data are generated by a Request-Based dependency generator which uses a configuration file corresponding to the origin server, wherein the configuration file is the only configuration file corresponding to the origin server;
ii) storing said data page;
iii) storing said page dependency data;
iv) receiving an event;
v) determining if said event changes said one of the page dependency data associated with said data page; and
vi) updating the cache by refreshing or deleting said data page if said event changes said one of the page dependency data associated with said data page.

### Claim 27

A proxy server system that provides stored data files without requesting data files from the origin web server, comprising:
a) a central processing unit that can establish communication with a user computer;
b) a storage device;
c) a processor connected to the storage device wherein the storage device stores:
d) the processor is operative with said program component to:
i) receive a data page from an origin server, wherein said data page includes page dependency data that contains one or more dependencies such that each dependency indicates an underlying data source which the said data page is dependent on, wherein said page dependency data are generated by a Request-Based dependency generator which uses a configuration file corresponding to the origin server, wherein the configuration file is the only configuration file corresponding to the origin server;
ii) store said data page;
iii) store said page dependency data;
iv) receive an event;
v) determine if said event changes said one of the page dependency data associated with said data page; and
vi) update the cache by refreshing or deleting said data page if said event changes said one of the page dependency data associated with said data page.

### Claim 28

A method for caching a dynamic web page, the method comprising:
receiving a request for the dynamic web page at an origin server, the request sent from a dynamic content cache;
reading a configuration file created for the origin server, the configuration file containing one or more rules to be applied to dynamic web pages relating to the origin server in order to generate dependencies, wherein the configuration file is the only configuration file for the origin server;
generating the dynamic web page;
generating one or more dependencies for the dynamic web page by applying the one or more rules to the dynamic web page;
associating the one or more dependencies with the dynamic web page; and
sending the dynamic web page and the associated dependencies to the dynamic content cache for storage.

### Claim 29 (depends on 28)

The method of claim 28, wherein said one or more rules include URL pattern matching.

### Claim 30 (depends on 28)

The method of claim 28, wherein said associating includes appending the one or more dependencies at the end of the dynamic web page.

### Claim 31 (depends on 28)

The method of claim 28, wherein the one or more dependencies for the dynamic web page do not include dependencies for at least one object which is to be displayed when the dynamic web page is loaded by a browser.

### Claim 32 (depends on 31)

The method of claim 31, wherein said dependencies for at least one object which are not included in the one or more dependencies for the dynamic web page are determined by one or more rules indicating non-cacheable objects, the rules included in the configuration file.

### Claim 33 (depends on 28)

The method of claim 28, wherein the one or more dependencies are written in XML.
