IP Library Granted Patent US 8,549,099
Granted Patent B2
US 8,549,099 · App. 12/172,917 · Granted Oct 1, 2013

Methods and systems for javascript parsing

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 8,549,099
App. No.
12/172,917
Granted
Oct 1, 2013
Kind
B2
Abstract

The present invention relates to systems, apparatus, and methods of parsing a script within an HTML page. The method includes receiving a script object, where the script object includes text. The method further includes parsing the text of the script object for tokens and comparing the parsed tokens with a valid tokens list to determine locations within the text of the script object that include potential universal resource locators (URLs). The method includes parsing before and after the determined locations until complete URLs are constructed, and forwarding the complete URLs to a detector. The detector then determines whether the complete URLs are valid. The method then sends object retrieval requests to websites associated with the valid complete URLs.

Claims (46)

1. A method of parsing a script within an HTML page to identify a URL for prefetching, the method comprising:

receiving a script object;

parsing the script object with a token list in order to identify a token that indicates a possible URL in the script;

parsing before and after the token with a script parser;

identifying, by the parsing before and after the token, a plurality of URL strings and a script operator, wherein at least one of the URL strings comprises an expression associated with a variable;

constructing a complete URL using the plurality of URL strings and the script operator, wherein the script operator provides instructions for creating at least a portion of the complete URL using the plurality of strings, and wherein the complete URL does not include the script operator or the expression;

forwarding the complete URL to a detector, wherein the detector determines whether the complete URL is valid;

sending object retrieval requests to websites associated with the valid complete URL; and

prefetching data objects from webpages associated with the valid complete URL.

2. The method for parsing a script within an HTML page as recited in claim 1 , wherein the script object is at least one of a JavaScript object, an active server page (ASP) object, and a personal hypertext processor (PHP) object.

3. The method for parsing a script within an HTML page as recited in claim 1 , further comprising in response to sending an object retrieval request to a website associated with the valid complete URL, receiving a page not found error.

4. The method for parsing a script within an HTML page as recited in claim 3 , further comprising in response to receiving the page not found error, discarding the valid complete URL.

5. The method for parsing a script within an HTML page as recited in claim 1 , further comprising accessing a syntax list associated with the script to facilitate construction of the complete URL.

6. The method for parsing a script within an HTML page as recited in claim 1 , further comprising checking the script object to determine if there is additional text to parse.

7. The method for parsing a script within an HTML page as recited in claim 1 , wherein the determination of whether the URL is valid comprises comparing the URL to a blacklist of URLs.

8. The method for parsing a script within an HTML page as recited in claim 1 , wherein the valid tokens list includes one or more of the following: a “.jpg” token, a “.gif” token, an “.asp” token, and a “var” token.

9. The method of claim 1 wherein the complete URL comprises the variable.

10. The method of claim 1 wherein the token is the expression.

11. The method of claim 9 wherein the script parser executes the expression to identify the variable, wherein the script parser is a JavaScript parser configured to recognize a subset of the JavaScript language including JavaScript expressions through which URLs are commonly constructed.

12. A system for accelerating network communications, the system comprising:

a client system including a proxy client configured to intercept a content request generated by the client, and to transmit the request;

a proxy server coupled with the client system via the proxy client, the proxy server including a script parser configured to:

receive a script object, wherein the script object includes syntax and the script object is embedded in the HTML text;

parse the syntax of the script object to generate syntax tokens;

compare the parsed syntax tokens with a valid token in order to determine locations within the syntax of the script object that include potential universal resource locator (URL); and

parse before and after the determined locations with a script parser to identify a plurality of URL strings and a script function, wherein at least one of the URL strings comprises an expression associated with a variable, and construct a complete URL using the plurality of URL strings and the script function, wherein the script function provides direction for creating at least a portion of the complete URL using the plurality of strings, and wherein the complete URL does not include the script function or the expression,

wherein the proxy server further includes a detector which is configured to receive the complete URL to determine whether the complete URL is valid; and

a content server coupled with the proxy server, the content server configured to receive object retrieval requests associated with the valid complete URL from the proxy server, and transmit objects associated with the valid completed URL to the proxy server,

wherein the proxy server is further configured to prefetch data objects from webpages associated with the valid complete URL.

13. A system for accelerating network communications as recited in claim 12 , wherein the proxy server further comprises a prefetch scanner configured to scan an attached file associated with one or more of the identified valid URLs to determine candidates for prefetching.

14. A system for accelerating network communications as recited in claim 12 , wherein the client and the proxy server are coupled together via a high latency communications link.

15. A system for accelerating network communications as recited in claim 14 , wherein the high latency link is one or more of the following: a satellite link, a wireless link, and a cellular link.

16. A system for accelerating network communications as recited in claim 12 , wherein the proxy server and the proxy client are couple together via a low latency link.

17. A system for accelerating network communications as recited in claim 16 , wherein the low latency link is one or more of the following: a digital subscriber line (DSL), a cable modem link, a T1 connection, and a fiber optic connection.

18. A method for prefetching comprising:

storing, in a proxy server, a set of prefetch context information that associates a list of token identification contexts with a probability of prefetching success;

receiving, at the proxy server, a script object;

parsing, at the proxy server, the script object with a token list in order to identify a token that indicates a possible URL in the script object;

parsing before and after the token with a script parser;

identifying, by the parsing before and after the token, a plurality of URL strings and a script operator;

constructing a complete URL using the plurality of URL strings and the script operator, wherein at least one of the URL strings comprises an expression associated with a variable, wherein the script operator provides instructions for creating at least a portion of the complete URL using the plurality of strings, and wherein the complete URL does not include the script operator or the expression;

forwarding the complete URL to a detector, wherein the detector determines whether the complete URL is valid;

notifying a prefetch abort within the proxy server of the token used to identify the complete valid URL;

determining at the prefetch abort whether to prefetch the complete URL based on the set of prefetch context information;

prefetching data objects from a webpage associated with the valid complete URL; and

updating the set of prefetch context information based on a success of prefetching data objects from the webpage associated with the valid complete URL.

Assignments (13)
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 →
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/0036 →
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 May 9, 2012
From: VIASAT, INC.
To: UNION BANK, N.A.
Reel/Frame 028184/0152 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2008
From: SEBASTIAN, WILLIAM B.
To: VIASAT, INC.
Reel/Frame 021332/0765 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2008
From: SEBASTIAN, WILLIAM B.
To: VIASAT, INC.
Reel/Frame 021240/0872 →