IP Library Granted Patent US 9,106,607
Granted Patent B1
US 9,106,607 · App. 13/372,347 · Granted Aug 11, 2015

Browser based feedback for optimized web browsing

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,106,607
App. No.
13/372,347
Granted
Aug 11, 2015
Kind
B1
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 (80)

1. A method comprising:

observing, with a web browser module operating on a first computer, at least a portion of a first web page transaction in a web browser operating on the first computer, the first web page transaction comprising:

a first HTTP request from the web browser, and

resulting therefrom:

a first HTTP response, and

at least one child HTTP request;

identifying, using the web browser module, transaction information from the observing of the at least a portion of the first web page transaction, wherein the transaction information comprises a list of child objects observed by the web browser module to be part of the first web page transaction;

communicating transaction information to a prefetching system in a communication separate from the first web page transaction; and

wherein the prefetching system is configured to perform a prefetch operation, the prefetch operation determined based at least in part on an analysis of the transaction information from the web browser module and performed in anticipation of receiving a subsequent request, from a second computer, of a webpage associated with the transaction information, and wherein the prefetching system is further configured to perform a second prefetch operation comprising:

storing the transaction information in a web page transaction database module;

receiving, at the web page transaction database module, a second transaction information communication associated with a second web page transaction, wherein the second transaction information communication identifies the first HTTP request as part of the second web page transaction;

communicating the list of the child objects from the web page transaction database module to the web browser module in response to the second transaction information communication; and

prefetching, using the web browser module, the child objects; and

rendering, using the web browser, a second web page for the second web page transaction using the child objects prefetched by the web browser module.

2. The method of claim 1 wherein the prefetching system comprises a proxy server, wherein the proxy server prefetches the at least one child HTTP request from a content server to the proxy server in response to receipt of the transaction information at the proxy server.

3. The method of claim 1 wherein the prefetching system comprises the web page transaction database module operating on the first computer.

4. The method of claim 3 wherein the transaction information further comprises the first HTTP request.

5. The method of claim 1 wherein performing the prefetch operation using the transaction information comprises searching the web page transaction database module for a record associated with the first web page transaction; and

prefetching a list of child objects from the record associated with the first web page transaction.

6. The method of claim 1 wherein the prefetching system comprises a browser assistance server; and wherein the transaction information comprises the first HTTP request.

7. The method of claim 6 wherein performing the prefetch operation using the transaction information comprises receiving a set of prefetch hints at the second computer from the browsing assistance server in response to communicating the transaction information.

8. The method of claim 7 wherein the set of prefetch hints comprises a list of child objects;

wherein performing the prefetch operation further comprises prefetching the set of child objects.

9. The method of claim 8 wherein the set of prefetch hints further comprises a set of instructions for creating a dynamic child URL associated with the first HTTP request;

wherein performing the prefetch operation further comprises constructing the dynamic child URL using the set of instructions and prefetching the dynamic child URL.

10. The method of claim 1 wherein observing the web page transaction further comprises observing browser execution of an instruction used to generate a URL for at least one associated child object of the first web page transaction; and

wherein the transaction information comprises the instruction.

11. The method of claim 10 wherein the instruction is a javascript function call.

12. The method of claim 11 wherein the javascript function is rand( ).

13. The method of claim 1 further comprising:

recording, in a transaction history record using the browser module, a user indication associated with the first web page transaction, the first HTTP request, the first HTTP response, child request and response information, and a total render time for the first web page transaction; and

communicating the transaction history record to the prefetching system following a web page rendering associated with the first web page transaction.

14. A method comprising:

observing, with a web browser module operating on a computer, at least a portion of a first web page transaction in a web browser operating on the computer, the first web page transaction comprising:

a first HTTP request from the web browser, and

resulting therefrom:

a first HTTP response, and

at least one child HTTP request;

identifying, using the web browser module, transaction information from the observing of the at least a portion of the first web page transaction;

communicating transaction information to a prefetching system in a communication separate from the first web page transaction, wherein the prefetching system is outside of a communication path between the computer and a content server associated with the first web page transaction, wherein the transaction information comprises a list of child objects observed by the web browser module to be part of the first web page transaction; and

wherein the prefetching system is configured to perform a prefetch operation, the prefetch operation determined based at least in part on an analysis of the transaction information from the web browser module and performed in anticipation of receiving, from a second computer, a subsequent selection of a webpage associated with the transaction information, and wherein the prefetching system is configured to perform a second prefetch operation comprising:

storing the transaction information in a web page transaction database module;

receiving, at the web page transaction database module, a second transaction information communication associated with a second web page transaction, wherein the second transaction information communication identifies the first HTTP request as part of the second web page transaction;

communicating the list of the child objects from the web page transaction database module to the web browser module in response to the second transaction information communication; and

prefetching, using the web browser module, the child objects; and

rendering, using the web browser, a second web page for the second web page transaction using the child objects prefetched by the web browser module.

15. The method of claim 14 wherein the prefetching system comprises a browser assistance server;

wherein the transaction information comprises the first HTTP request; and

wherein performing the prefetch operation using the transaction information comprises receiving a set of prefetch hints at the computer from the browsing assistance server in response to communicating the transaction information.

16. The method of claim 15 wherein the set of prefetch hints comprises a list of child objects;

wherein performing the prefetch operation further comprises prefetching the set of child objects.

17. The method of claim 16 wherein the set of prefetch hints further comprises a set of instructions for creating a dynamic child URL associated with the first HTTP request;

wherein performing the prefetch operation further comprises constructing the dynamic child URL using the set of instructions and prefetching the dynamic child URL.

18. The method of claim 14 further comprising:

recording, in a transaction history record using the browser module, a domain name server lookup time, a TCP connection setup time, a content server processing time, an object data transfer time, and a client parsing and execute time for at least one object of the first web page transaction; and

communicating the transaction history record to the prefetching system following a web page rendering associated with the first web page transaction.

19. A system comprising:

a first computer; and

a prefetching system in communication with the first computer,

wherein the first computer is configured to execute a web browser module, the web browser module configured to:

observe, with a web browser module operating on a first computer, at least a portion of a first web page transaction in a web browser operating on the first computer, the first web page transaction comprising:

a first HTTP request from the web browser, and

resulting therefrom:

a first HTTP response, and

at least one child HTTP request;

identify, using the web browser module, transaction information from the observing of the at least a portion of the first web page transaction, wherein the transaction information comprises a list of child objects observed by the web browser module to be part of the first web page transaction;

communicate transaction information to a prefetching system in a communication separate from the first web page transaction; and

wherein the prefetching system comprises a proxy server, wherein the proxy server is configured to perform a prefetch operation, the prefetch operation determined based at least in part on an analysis of the transaction information from the web browser module and performed in anticipation of receiving a subsequent request, from a second computer, of a webpage associated with the transaction information, wherein the prefetching system is further configured to:

store the transaction information in a web page transaction database module;

receive, at the web page transaction database module, a second transaction information communication associated with a second web page transaction, wherein the second transaction information communication identifies the first HTTP request as part of the second web page transaction;

communicate the list of the child objects from the web page transaction database module to the web browser module in response to the second transaction information communication; and

prefetch, using the web browser module, the child objects; and

render, using the web browser, a second web page for the second web page transaction using the child objects prefetched by the web browser module.

20. The system of claim 19 , wherein the second computer is configured to perform the subsequent selection of the webpage.

21. The system of claim 19 , wherein the prefetching system comprises a web page transaction database module operating on the first computer.

22. The system of claim 21 , wherein the prefetching system is further configured to:

search the web page transaction database module for a record associated with the first web page transaction to perform the prefetch operation; and

prefetch a list of child objects from the record associated with the first web page transaction.

23. The system of claim 21 , wherein the transaction information further comprises the first HTTP request.

24. The system of claim 19 , wherein the web browser module is further configured to observe browser execution of an instruction used to generate a URL for at least one associated child object of the first web page transaction, and wherein the transaction information comprises the instruction.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 48715/0589 Recorded Jun 6, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
To: VIASAT, INC.
Reel/Frame 071638/0083 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 063822/0446 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0223 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2025
From: MUFG BANK, LTD. (AS SUCCESSOR-IN-INTEREST TO MUFG UNION BANK, N.A. (F/K/A UNION BANK, N.A.)), AS AGENT
To: VIASAT, INC.
Reel/Frame 071321/0026 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 059332/0558 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0152 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: VIASAT, INC.
To: SNAPPI HOLDCO, INC.
Reel/Frame 070293/0483 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: SNAPPI HOLDCO, INC.
To: SNAPPI, INC.
Reel/Frame 070293/0879 →
SECURITY AGREEMENT Recorded Jun 1, 2023
From: VIASAT, INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 063822/0446 →
SECURITY AGREEMENT Recorded Mar 7, 2022
From: VIASAT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 059332/0558 →
SECURITY INTEREST Recorded Mar 27, 2019
From: VIASAT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 048715/0589 →
SECURITY AGREEMENT Recorded Dec 23, 2013
From: VIASAT, INC.
To: UNION BANK, N.A., AS AGENT FOR THE SECURED PARTIES
Reel/Frame 031868/0789 →