IP Library Granted Patent US 8,984,095
Granted Patent B2
US 8,984,095 · App. 13/967,924 · Granted Mar 17, 2015

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,984,095
App. No.
13/967,924
Granted
Mar 17, 2015
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 (37)

1. A method of parsing a script within an HTML page, the method comprising:

receiving a script object, wherein the script object includes text;

parsing the text of the script object for tokens without updating a state machine for every byte processed;

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);

parsing before and after the determined locations until complete URLs are constructed;

forwarding the complete URLs to a detector, wherein the detector determines whether the complete URLs are valid; and

sending object retrieval requests to websites associated with the valid complete URLs.

2. The method for parsing a script within an HTML page as recited in claim 1 , wherein the parsing of the text of the script object comprises parsing a subset of the text of the script object.

3. 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.

4. 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 one of the valid complete URLs, receiving a page not found error.

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

6. The method of claim 5 further comprising:

updating a blacklist with the one of the valid complete URLs.

7. 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 complete URLs.

8. 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.

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

10. 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.

11. The method of claim 1 wherein each token of the valid tokens list comprises an integer value.

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 text, to parse the text of the script object for tokens without updating a state machine for every byte processed by the script parser, to compare 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), and to parse before and after the determined locations until complete URLs are constructed, wherein the proxy server further includes a detector which is configured to receive the complete URLs to determine whether the complete URLs are valid; and

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

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 non-transitory machine-readable medium for parsing script files including sets of instructions stored thereon which, when executed by a machine, cause the machine to:

receive a script object, wherein the script object includes text;

parse the text of the script object for tokens without updating a state machine for each byte processed;

compare the parsed tokens with a valid tokens list to determine locations within the text of the script object that include potential URLs;

parse before and after the determined locations until complete URLs are constructed;

forward the complete URLs to a detector, wherein the detector determines whether the complete URLs are valid; and

send object retrieval requests to websites associated with the valid complete URLs.

19. The method of claim 11 wherein comparing the parsed tokens with the valid tokens list to determine locations within the text of the script object that include the potential URLs comprises:

converting each of the parsed tokens to a parsed token integer value and performing an integer comparison between each token of the valid tokens list and each of the parsed token 4 byte integer values.

20. The method of claim 19 wherein the integer value for each token is a 4 byte integer value and wherein the parsed token integer value for each parsed token is a 4 byte integer.

Assignments (11)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2013
From: SEBASTIAN, WILLIAM B
To: VIASAT, INC.
Reel/Frame 031056/0432 →