# US 10,372,780 B1 · Browser based feedback for optimized web browsing

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

- Number: US 10,372,780 B1
- Document ID: US10372780B1
- Status: Granted
- Kind: B1
- Application number: 14/789,271
- Filed: 2015-07-01
- Granted: 2019-08-06
- Earliest claimed: 2011-02-11
- Assignees: ViaSat, Inc.
- Applicants: ViaSat, Inc.
- Inventors: Peter Lepeska; William B. Sebastian
- Web page: https://patentgrep.com/patent/US10372780B1

## CPC

- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- G06F 16/9566: {URL specific, e.g. using aliases, detecting broken or misspelled links}
- G06F 16/9574: {of access to content, e.g. by caching}
- H04L 67/01: Protocols
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04L 67/563: Data redirection of data network streams
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- 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)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present invention relates to systems, apparatus, and methods of accelerating web transactions. One embodiment includes observing, with a web browser plug-in operating on a computer, at least a portion of a first web page transaction in a web browser operating on the computer. A web browser module may be used to identify transaction information from the observing of the at least a portion of the first web page transaction. The browser may communicates transaction information to a prefetching system in a communication separate from the first web page transaction; and the transaction information may be used to perform a prefetch operation.

## Claims

### Claim 1

A method comprising:
receiving, by a browsing assistance system, a message comprising feedback information from a first client computer, the feedback information based on an observation made at the first client computer of a part of a first web page transaction between the first client computer and a content server, the part of the first web page transaction comprising:
a first root request from the first client computer for a root web resource of a first web page, and resulting therefrom:
a first root response comprising the root web resource, and
at least one child request for a child resource of the root web resource at a second content server different from the content server;
storing, by the browsing assistance system, at least a portion of the feedback information in a database in communication with the browsing assistance system, the feedback information including information about the child request for the child resource;
receiving, by the browsing assistance system, information regarding a target web page from a second client computer, the target web page associated with the first web page;
generating, by the browsing assistance system, hint information associated with the target web page based on the received feedback information; and
transmitting, by the browsing assistance system, the hint information to the second client computer.

### Claim 2 (depends on 1)

The method of claim 1, wherein at least a portion of the first web page transaction is encrypted.

### Claim 3 (depends on 1)

The method of claim 1 wherein the first client computer comprises the browsing assistance system.

### Claim 4 (depends on 1)

The method of claim 1, wherein the second client computer is the first client computer.

### Claim 5 (depends on 1)

The method of claim 1, wherein the hint information comprises a URL.

### Claim 6 (depends on 1)

The method of claim 1, wherein the hint information comprises a list of all objects expected as a part of a second web page transaction associated with the target web page.

### Claim 7 (depends on 1)

The method of claim 1, wherein the hint information comprises at least one of timing-related dependencies or cookie-related dependencies.

### Claim 8 (depends on 1)

The method of claim 1, wherein the hint information comprises cache information about one or more child objects, wherein the cache information comprises at least one of a checksum, a size, version information, or object freshness information of the one or more child objects.

### Claim 9 (depends on 1)

The method of claim 1, wherein the hint information comprises one or more of a hint for a web page associated with the target web page, a set of hints for a group of web pages associated with the target web page, a set of hints for a group of web pages associated with a different domain from the target web page, or a set of hints for an entire domain associated with the target web page.

### Claim 10 (depends on 1)

The method of claim 1, wherein the hint information comprises one or more of a set of hints based on a user history associated with the target web page, a set of hints based on a peer group history associated with the target web page, or a set of hints based on a system history associated with the target web page.

### Claim 11 (depends on 1)

The method of claim 1, wherein the hint information comprises server performance data for one or more URLs or domains.

### Claim 12 (depends on 1)

The method of claim 1, wherein the hint information comprises one or more of a preferred source for a child object, a formula to generate a location of one or more generated child URLs, an alternate URL for the child object, or a URL for a copy of the child object at a content delivery network (“CDN”) cache.

### Claim 13 (depends on 1)

The method of claim 1, wherein the hint information comprises information to generate a dynamic URL.

### Claim 14 (depends on 13)

The method of claim 13, wherein the information to generate the dynamic URL comprises one or more of a formula, javascript, an indication to use date information in the dynamically-generated URL, an indication to use a random number in the dynamically-generated URL, an indication to use session-specific information in the dynamically-generated URL, or an indication to use user-specific information in the dynamically-generated URL.

### Claim 15 (depends on 1)

The method of claim 1, wherein the hint information comprises priority information or probability information.

### Claim 16 (depends on 1)

The method of claim 1, wherein the hint information comprises a set of rotating values.

### Claim 17 (depends on 1)

The method of claim 1, wherein generating the hint information comprises generating hint information comprising a value derived from a second URL, and wherein the value derived from the second URL comprises a third URL from one of (i) a previous download of the same page, or (ii) a previous download of a separate page or transaction.

### Claim 18 (depends on 1)

The method of claim 1, wherein the hint information comprises one or more of cookie or cookie-related information, information to improve web page load times, or information to optimize connections.

### Claim 19 (depends on 1)

The method of claim 1, wherein the hint information comprises URL redirection information.

### Claim 20 (depends on 1)

The method of claim 1, wherein generating the hint information comprises generating hint information comprising one or more of information about a root URL not previously seen by the browsing assistance system.

### Claim 21 (depends on 1)

The method of claim 1, wherein the browsing assistance system is configured to identify at least one inconsequential field in a child object based on previous requests for the child object having different values for the inconsequential field.

### Claim 22 (depends on 1)

The method of claim 1, wherein the feedback information comprises one or more of a value based on a date or a time provided by a call to a date or a time function at the first client computer or a value based on a value provided by a call to a random number generation function at the first client computer.

### Claim 23 (depends on 1)

The method of claim 1, wherein the feedback information comprises one or more of a value derived from session specific data, a value derived from user-specific data, or a value derived from configuration-specific data.

### Claim 24 (depends on 1)

The method of claim 1, wherein the feedback information comprises one or more of cookie or cookie-related information, information to improve web page load times, or information to optimize connections.

### Claim 25 (depends on 1)

The method of claim 1, wherein the feedback information comprises URL redirection information.

### Claim 26 (depends on 1)

The method of claim 1, wherein the browsing assistance system is separate and independent from the content server, and wherein the browsing assistance system does not participate in communications between (i) the first and second client computer, and (ii) the content server.

### Claim 27 (depends on 1)

The method of claim 1, wherein:
the first web page transaction further comprises:
a plurality of child requests, and
a plurality of child responses to the child requests, each child response comprising a child resource of the first web page; and
the feedback information comprises identifications of the child resources.

### Claim 28 (depends on 27)

The method of claim 27, wherein the feedback information further comprises:
an order in which the child resources were loaded as part of a loading of the first web page, or
a timing during the loading of the first web page at which each of the child resources was loaded.

### Claim 29

A system comprising:
a database; and
a browsing assistance system, wherein the browsing assistance system is in communication with the database and a first client computer, the first client computer in communication with a content server, the browsing assistance system configured to:
receive a message comprising feedback information from the first client computer, the feedback information based on an observation made at the first client computer of a part of a first web page transaction between the first client computer and a content server, the part of the first web page transaction comprising:
a first root request from the first client computer for a root web resource of a first web page, and resulting therefrom:
a first root response comprising the root web resource, and
at least one child request for a child resource of the root web resource at a second content server different from the content server;
store at least a portion of the feedback information in the database, the feedback information including information about the child request for the child resource;
receive information regarding a target web page from a second client computer, the target web page associated with the first web page;
generate hint information associated with the target web page based on the received feedback information; and
transmit the hint information to the second client computer.

### Claim 30 (depends on 29)

The system of claim 29, wherein at least a portion of the first web page transaction is encrypted.

### Claim 31 (depends on 29)

The system of claim 29, wherein the hint information comprises a URL.

### Claim 32 (depends on 29)

The system of claim 29, wherein the hint information comprises priority information or probability information.

### Claim 33 (depends on 29)

The system of claim 29, wherein the hint information comprises at least one of timing-related dependencies or cookie-related dependencies.

### Claim 34 (depends on 29)

The system of claim 29, wherein the hint information comprises cache information about one or more child objects, and wherein the cache information comprises at least one of a checksum, a size, version information, or object freshness information of the one or more child objects.

### Claim 35 (depends on 29)

The system of claim 29, wherein the hint information comprises one or more of a hint for a web page associated with the target web page, a set of hints for a group of web pages associated with the target web page, a set of hints for a group of web pages associated with a different domain from the target web page, or a set of hints for an entire domain associated with the target web page.

### Claim 36 (depends on 29)

The system of claim 29, wherein the hint information comprises one or more of a set of hints based on a user history associated with the target web page, a set of hints based on a peer group history associated with the target web page, or a set of hints based on a system history associated with the target web page.

### Claim 37 (depends on 29)

The system of claim 29, wherein the hint information comprises server performance data for one or more URLs or domains.

### Claim 38 (depends on 29)

The system of claim 29, wherein the hint information comprises one or more of a preferred source for a child object, a formula to generate a location of one or more generated child URLs, an alternate URL for the child object, or a URL for a copy of the child object from a content delivery network (“CDN”) cache.

### Claim 39 (depends on 28)

The system of claim 28, wherein the hint information comprises one or more of dependencies among child objects or cookie set actions associated with the target web page.

### Claim 40 (depends on 29)

The system of claim 29, wherein the hint information comprises information to generate a dynamic URL.

### Claim 41 (depends on 40)

The system of claim 40, wherein the information to generate the dynamic URL comprises one or more of a formula, javascript, an indication to use date information in the dynamically-generated URL, an indication to use a random number in the dynamically-generated URL, an indication to use session-specific information in the dynamically-generated URL, or an indication to use user-specific information in the dynamically-generated URL.

### Claim 42 (depends on 29)

The system of claim 29, wherein the hint information comprises one or more of cookie or cookie-related information, information to improve web page load times, or information to optimize connections.

### Claim 43 (depends on 29)

The system of claim 29, wherein the hint information comprises URL redirection information.

### Claim 44 (depends on 29)

The system of claim 29, wherein the browsing assistance system is further configured to generate hint information comprising one or more of a set of rotating values, a value derived from a second URL, a common template for a plurality of child URLs, or a field occurring in other locations within the target web page or one or more other web page transactions, to generate the hint information.

### Claim 45 (depends on 44)

The system of claim 44, wherein the browsing assistance system is further configured to generate value derived from the second URL comprises a third URL from one of (i) a previous download of the same page, or (ii) a previous download of a separate page or transaction, and wherein the field comprises at least one of (i) a field of a fourth URL in a common page instance, (ii) a cookie, (iii) an instance of a common template, or (iv) a field in a previous download of a page previously downloaded by the same user, to generate the hint information.

### Claim 46 (depends on 29)

The system of claim 29, wherein the hint information comprises one or more of information about a root URL not previously seen by the browsing assistance system.

### Claim 47 (depends on 29)

The system of claim 29, wherein the feedback information comprises one or more of hit information, miss information, fail information, or individual object timings.

### Claim 48 (depends on 29)

The system of claim 29, wherein the browsing assistance system is configured to identify at least one inconsequential field in a child object based on previous requests for the child object having different values for the inconsequential field.

### Claim 49 (depends on 29)

The system of claim 29, wherein the feedback information comprises one or more of a value based on a date or a time provided by a call to a date or time function at the first client computer or a value provided by a call to a random number generation function at the first client computer.

### Claim 50 (depends on 29)

The system of claim 29, wherein the feedback information comprises one or more of a value derived from session specific data, a value derived from user-specific data, or a value derived from configuration-specific data.

### Claim 51 (depends on 29)

The system of claim 29, wherein the feedback information comprises one or more of cookie or cookie-related information, information to improve web page load times, or information to optimize connections.

### Claim 52 (depends on 29)

The system of claim 29, wherein the feedback information comprises URL redirection information.

### Claim 53 (depends on 29)

The system of claim 29, wherein the browsing assistance system is separate and independent from the content server and wherein the browsing assistance system is further not configured to participate in communications between (i) the first and second client computer, and (ii) the content server.

### Claim 54 (depends on 29)

The system of claim 29, wherein:
the first web page transaction further comprises:
a plurality of child requests, and
a plurality of child responses to the child requests, each child response comprising a child resource of the first web page; and
the feedback information comprises identifications of the child resources.

### Claim 55 (depends on 54)

The system of claim 54, wherein the feedback information further comprises:
an order in which the child resources were loaded as part of a loading of the first web page, or
a timing during the loading of the first web page at which each of the child resources was loaded.

### Claim 56

A non-transitory computer-readable medium comprising program code executable by a processor, the program code configured to cause the processor to:
receive, by a browsing assistance system, a message comprising feedback information from a first client computer, the feedback information based on an observation made at the first client computer of a part of a first web page transaction between the first client computer and a content server, the part of the first web page transaction comprising:
a first root request from the first client computer for a root web resource of a first web page, and resulting therefrom:
a first root response comprising the root web resource, and
at least one child request for a child resource of the root web resource at a second content server different from the content server;
store, by the browsing assistance system, at least a portion of the feedback information in a database in communication with the browsing assistance system, the feedback information including information about the child request for the child resource;
receive, by the browsing assistance system, information regarding a target web page from a second client computer, the target web page associated with the first web page;
generate, by the browsing assistance system, hint information associated with the target web page based on the received feedback information; and
transmit, by the browsing assistance system, the hint information to the second client computer.

### Claim 57 (depends on 56)

The computer-readable medium of claim 56, wherein at least a portion of the first web page transaction is encrypted.

### Claim 58 (depends on 56)

The computer-readable medium of claim 56, wherein the hint information comprises a URL.

### Claim 59 (depends on 56)

The computer-readable medium of claim 56, wherein the hint information comprises priority information or probability information.

### Claim 60 (depends on 56)

The computer-readable medium of claim 56, wherein the hint information comprises at least one of timing-related dependencies or cookie-related dependencies.

### Claim 61 (depends on 56)

The computer-readable medium of claim 56, wherein the hint information comprises information to generate a dynamic URL.

### Claim 62 (depends on 61)

The computer-readable medium of claim 61, wherein the information to generate a dynamic URL comprises one or more of a formula, javascript, an indication to use date information in the dynamically-generated URL, an indication to use a random number in the dynamically-generated URL, an indication to use session-specific information in the dynamically-generated URL, or an indication to use user-specific information in the dynamically-generated URL.

### Claim 63 (depends on 56)

The computer-readable medium of claim 56, wherein the hint information comprises one or more of cookie or cookie-related information, information to improve web page load times, or information to optimize connections.

### Claim 64 (depends on 56)

The computer-readable medium of claim 56, wherein the hint information comprises URL redirection information.

### Claim 65 (depends on 56)

The computer-readable medium of claim 56, wherein the feedback information comprises one or more of a value derived from session specific data, a value derived from user-specific data, or a value derived from configuration-specific data.

### Claim 66 (depends on 56)

The computer-readable medium of claim 56, wherein the hint information comprises one or more of information about a root URL not previously seen by the browsing assistance system.

### Claim 67 (depends on 56)

The computer-readable medium of claim 56, wherein the hint information comprises one or more of a preferred source for a child object, a formula to generate a location of one or more generated child URLs, an alternate URL for the child object, or a URL for a copy of the child object from a content delivery network (“CDN”) cache.

### Claim 68 (depends on 56)

The computer-readable medium of claim 56, wherein the hint information comprises cache information about one or more child objects, and wherein the cache information comprises at least one of a checksum, a size, version information, or object freshness information of the one or more child objects.

### Claim 69 (depends on 56)

The non-transitory computer-readable medium of claim 56, wherein the browsing assistance system is separate and independent from the content server and wherein the browsing assistance system is further not configured to participate in communications between (i) the first and second client computer, and (ii) the content server.

### Claim 70 (depends on 56)

The non-transitory computer-readable medium of claim 56, wherein:
the first web page transaction further comprises:
a plurality of child requests, and
a plurality of child responses to the child requests, each child response comprising a child resource of the first web page; and
the feedback information comprises identifications of the child resources.

### Claim 71 (depends on 70)

The non-transitory computer-readable medium of claim 70, wherein the feedback information further comprises:
an order in which the child resources were loaded as part of a loading of the first web page, or
a timing during the loading of the first web page at which each of the child resources was loaded.
