IP Library Granted Patent US 12,231,485
Granted Patent B2
US 12,231,485 · App. 18/191,819 · Granted Feb 18, 2025

Proactive conditioned prefetching and origin flooding mitigation for content delivery

Inventors: Subramanian Varadarajan (Los Gatos, CA); Rosarin Jolly Roy Antonyraj (Santa Clara, CA); Kumaravel Senthivel (San Jose, CA); Badrinath Natarajan (San Jose, CA)
Assignee: Palo Alto Networks, Inc.
H04L67/06G06F16/94G06F16/9574H04L67/02H04L67/141
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 12,231,485
App. No.
18/191,819
Granted
Feb 18, 2025
Kind
B2
Abstract

A method of delivering content includes, at a node in a network, receiving a first file, from a server, for rendering a first webpage. The method also includes transmitting the first file to a client computer system. The method also includes extracting a first hyperlink to a second webpage from the first file. The method also includes prefetching a second file for rendering the second webpage. The method also includes receiving a request to access a third webpage from the client computer system. The method also includes, in accordance with a determination that the second file can be used for rendering the third webpage, transmitting the second file to the client computer system.

Claims (60)

1. A method of delivering content, comprising, at a node in a network:

receiving a first file, from a server, for rendering the first webpage;

transmitting the first file to a client computer system;

determining a plurality of hyperlinks included in the first file;

for each hyperlink of the plurality of hyperlinks, determining a probability of receiving a subsequent request from the client computer system to access a webpage associated with the respective hyperlink;

extracting, from the first file, a first hyperlink of the plurality of hyperlinks based on the first hyperlink having a corresponding probability that is higher than the other hyperlinks of the plurality of hyperlinks, wherein the first hyperlink is to a second webpage; and

prefetching a second file for rendering the second webpage corresponding to the first hyperlink.

2. The method of claim 1 , wherein determining the plurality of hyperlinks included in the first file comprises parsing the first file.

3. The method of claim 1 , wherein determining the plurality of hyperlinks included in the first file comprises using a headless browser to render the first file.

4. The method of claim 1 , wherein determining the plurality of hyperlinks included in the first file comprises using a variant of a browser to render the first file.

5. The method of claim 1 , wherein determining the plurality of hyperlinks included in the first file comprises using JavaScript code to render the first file.

6. The method of claim 1 , wherein determining the plurality of hyperlinks included in the first file comprises injecting customer code into the first file.

7. The method of claim 1 , wherein prefetching the second file comprises:

transmitting another request to the server for the second file; and

receiving the second file from the server.

8. The method of claim 1 , further comprising:

after receiving a request from the client computer system to access a third webpage and in accordance with a determination that the second file can be used for rendering the third webpage:

in accordance with a determination that the second file is stale:

transmitting another request to the server for a refreshed file;

receiving the refreshed file; and

pushing the refreshed file to the client computer system subsequent to transmitting the second file to the client computer system.

9. A system, comprising:

one or more processors; memory; and

one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for:

receiving a first file, from a server, for rendering a first webpage;

transmitting the first file to a client computer system;

determining a plurality of hyperlinks included in the first file;

for each hyperlink of the plurality of hyperlinks, determining a probability of receiving a subsequent request from the client computer system to access a webpage associated with the respective hyperlink;

extracting, from the first file, a first hyperlink of the plurality of hyperlinks based on the first hyperlink having a corresponding probability that is higher than the other hyperlinks of the plurality of hyperlinks, wherein the first hyperlink is to a second webpage; and

prefetching a second file for rendering the second webpage corresponding to the first hyperlink.

10. The system of claim 9 , wherein determining the plurality of hyperlinks included in the first file comprises parsing the first file.

11. The system of claim 9 , wherein determining the plurality of hyperlinks included in the first file comprises using a headless browser to render the first file.

12. The system of claim 9 , wherein determining the plurality of hyperlinks included in the first file comprises using a variant of a browser to render the first file.

13. The system of claim 9 , wherein determining the plurality of hyperlinks included in the first file comprises using JavaScript code to render the first file.

14. The system of claim 9 , wherein the one or more programs further comprise instructions for:

after receiving a request from the client computer system to access a third webpage and in accordance with a determination that the second file can be used for rendering the third webpage:

in accordance with a determination that the second file is stale:

transmitting another request to the server for a refreshed file;

receiving the refreshed file; and

pushing the refreshed file to the client computer system subsequent to transmitting the second file to the client computer system.

15. The system of claim 9 , wherein the instructions for prefetching the second file comprise instructions for:

transmitting another request to the server for the second file; and

receiving the second file from the server.

16. A non-transitory computer readable storage medium storing one or more programs configured for execution by an electronic device with a display, the one or more programs comprising instructions for:

receiving a first file, from a server, for rendering a first webpage;

transmitting the first file to a client computer system;

determining a plurality of hyperlinks included in the first file;

for each hyperlink of the plurality of hyperlinks, determining a probability of receiving a subsequent request from the client computer system to access a webpage associated with the respective hyperlink;

extracting, from the first file, a first hyperlink of the plurality of hyperlinks based on the first hyperlink having a corresponding probability that is higher than the other hyperlinks of the plurality of hyperlinks, wherein the first hyperlink is to a second webpage; and

prefetching a second file for rendering the second webpage corresponding to the first hyperlink.

17. The non-transitory computer readable storage medium of claim 16 , wherein the instructions for determining the plurality of hyperlinks included in the first file comprise instructions for parsing the first file, using a headless browser to render the first file, using a variant of a browser to render the first file, using JavaScript code to render the first file, or injecting customer code into the first file.

18. The non-transitory computer readable storage medium of claim 16 , wherein the instructions for prefetching the second file comprise instructions for:

transmitting another request to the server for the second file; and

receiving the second file from the server.

19. The non-transitory computer readable storage medium of claim 16 , wherein the one or more programs further comprise instructions for:

after receiving a request from the client computer system to access a third webpage and in accordance with a determination that the second file can be used for rendering the third webpage:

in accordance with a determination that the second file is stale:

transmitting another request to the server for a refreshed file;

receiving the refreshed file; and

pushing the refreshed file to the client computer system subsequent to transmitting the second file to the client computer system.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY DATA PREVIOUSLY RECORDED ON REEL 063900 FRAME 0586. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 14, 2023
From: ZYCADA NETWORKS, INC.
To: PALO ALTO NETWORKS, INC.
Reel/Frame 064585/0057 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2023
From: ZYCADA NETWORKS, INC.,
To: ZYCADA NETWORKS, INC.; PALO ALTO NETWORKS, INC.
Reel/Frame 063900/0586 →
Continuity (4)
Continuation 17493383 · Oct 4, 2021
Continuation 16902148 · Jun 15, 2020
Provisional Application 62861976 · Jun 14, 2019
Related Publication 20230239341A1 · Jul 27, 2023
References Cited (6)
US 9037638B1 · Lepeska · 2015 [cited by examiner]
US 10375192B1 · Lepeska · 2019 [cited by examiner]
US 20140280677A1 · Altman · 2014 [cited by examiner]
US 20150186542A1 · Singh · 2015 [cited by examiner]
US 20190034541A1 · Bosarge · 2019 [cited by examiner]
US 20230328034A1 · Behera · 2023 [cited by examiner]