IP Library Granted Patent US 11,445,005
Granted Patent B2
US 11,445,005 · App. 17/307,247 · Granted Sep 13, 2022

Expedited sub-resource loading

Inventor: Steven Souders (Los Altos, CA)
Assignee: Fastly, Inc.
H04L67/02H04L67/565H04L67/5681H04L67/34
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 11,445,005
App. No.
17/307,247
Granted
Sep 13, 2022
Kind
B2
Abstract

Systems, methods, apparatus, and software for pre-fetching and/or pre-loading sub-resources used in rendering HTML files, web pages and the like are provided herein. Implementations include expedited sub-resource loading in which a cache node or other content delivery network component receives a first end user device request seeking a primary resource (e.g., an HTML file). Using information in the first request, the content delivery network pre-fetches one or more identified sub-resources (e.g., JavaScript code) required for rendering of the HTML file. Pre-fetched sub-resources are held by the cache node. During parsing of the HTML file by the end user device, a web browser or other application requires the sub-resource(s) and the end user device thus sends a second request to the cache node asking for the required sub-resource(s). The cache node sends the requested, pre-fetched sub-resource(s).

Claims (45)

1. A method of operating a server that is configured to respond to end user requests, the method comprising:

receiving, at the server, a content request comprising a URL corresponding to an original HTML file, from an end user device of a group of multiple, different end user devices;

consulting a repository within the server to identify a first JavaScript code that is required for rendering the original HTML file into a web page and obtain identification and location information for the first JavaScript code, wherein the repository maintains a listing of JavaScript codes that have been historically requested for the URL by a plurality of the multiple different end user devices;

identifying a required sub-resource by scanning the original HTML file to identify a reference to the required sub-resource;

obtaining the first JavaScript code and the required sub-resource; and

sending the original HTML file, the first JavaScript code and the required sub- resource to the end user device.

2. The method of claim 1 further comprising:

receiving a request for the identified required sub-resource from the end user device after sending the identified reference to the required sub-resource to the end user device.

3. The method of claim 1 , wherein sending the original HTML file, the first JavaScript code and the required sub-resource to the end user device occurs without receiving a request from the end user device for at least one of the first JavaScript code and the required sub-resource.

4. The method of claim 1 , wherein the first JavaScript code is located at an origin server.

5. The method of claim 1 , wherein the required sub-resource is located at an origin server.

6. The method of claim 1 , wherein the required sub-resource is an image file.

7. The method of claim 1 further comprising, prior to receiving the content request,

caching the web page in the server.

8. A computer apparatus, comprising:

a processor; and

a memory;

wherein the computer apparatus is configured to operate a server in a network, the computer apparatus further comprising processing instructions that direct the server, when executed by the server, to:

receive a content request from an end user device of a group of multiple, different end user devices, comprising a URL corresponding to an original HTML file;

consult a repository within the server to identify a first JavaScript code required for rendering the original HTML file into a web page and obtain identification and location information for the first JavaScript code, wherein the repository maintains a listing of JavaScript codes that have been historically requested for the URL corresponding to the web page by a plurality of the group of multiple, different end user devices;

identify a required sub-resource by scanning the original HTML file to identify a reference to the required sub-resource;

obtain the first JavaScript code and the required sub-resource; and

send the original HTML file, the first JavaScript code and the required sub- resource to the end user device.

9. The computer apparatus of claim 8 , wherein the processing instructions further direct the server to:

receive a request for the identified required sub-resource from the end user device after sending the identified reference to the required sub-resource to the end user device.

10. The computer apparatus of claim 8 , wherein sending the original HTML file, the first JavaScript code and the required sub-resource to the end user device occurs without receiving a request from the end user device for at least one of the first JavaScript code and the required sub-resource.

11. The computer apparatus of claim 8 , wherein the first JavaScript code is located at an origin server.

12. The computer apparatus of claim 8 , wherein the required sub-resource is located at an origin server.

13. The computer apparatus of claim 8 , wherein the required sub-resource is an image file.

14. The computer apparatus of claim 8 wherein the processing instructions further direct the server to, prior to receiving the content request, cache the web page in the server.

15. A server that responds to requests from multiple, different end user devices, the server comprising:

a storage system configured to store web page content comprising an original HTML file corresponding to a web page, wherein the original HTML file comprises an HTML file body including a reference to a first JavaScript code that is required for rendering the original HTML file into the web page;

a repository that maintains a listing of JavaScript codes that have been historically requested for a URL corresponding to the web page by a plurality of the multiple, different end user devices;

responsive to a content request from an end user device for the web page, a network interface and processing circuitry configured to:

receive the content request from the end user device;

identify the first JavaScript code that is required for rendering the original HTML file into the web page by consulting the repository;

identify a required sub-resource by scanning the original HTML file to identify a reference to the required sub-resource;

obtain the first JavaScript code and the required sub-resource;

send the original HTML file, the first JavaScript code and the required sub-resource to the end user.

16. The server of claim 15 , wherein the network interface and processing circuitry are further configured to:

receive a request for the identified required sub-resource from the end user device after sending the identified reference to the required sub-resource to the end user device.

17. The server of claim 15 , wherein sending the original HTML file, the first JavaScript code and the required sub-resource to the end user device occurs without receiving a request from the end user device for at least one of the first JavaScript code and the required sub-resource.

18. The server of claim 15 , wherein the first JavaScript code is located at an origin server.

19. The server of claim 15 , wherein the required sub-resource is an image file.

20. The server of claim 15 , wherein the network interface and processing circuitry are further configured to, prior to receiving the content request, store the web page in the server.

Assignments (2)
SECURITY INTEREST Recorded May 1, 2024
From: FASTLY, INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY, AS ADMINISTRATIVE AGENT
Reel/Frame 067281/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2021
From: SOUDERS, STEVEN
To: FASTLY, INC.
Reel/Frame 056128/0604 →
Continuity (2)
Continuation 14741631 · Jun 17, 2015
Related Publication 20210258365A1 · Aug 19, 2021