# US 11,445,005 B2 · Expedited sub-resource loading

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,445,005 B2
- Document ID: US11445005B2
- Status: Granted
- Kind: B2
- Application number: 17/307,247
- Filed: 2021-05-04
- Published: 2021-08-19
- Granted: 2022-09-13
- Earliest claimed: 2015-06-17
- Assignees: Fastly, Inc.
- Applicants: Fastly, Inc.
- Inventors: Steven Souders
- Web page: https://patentgrep.com/patent/US11445005B2

## CPC

- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/565: Conversion or adaptation of application format or content (adding application control or application functional data H04L67/561)
- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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

### Claim 5 (depends on 1)

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

### Claim 6 (depends on 1)

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

### Claim 7 (depends on 1)

The method of claim 1 further comprising, prior to receiving the content request,
caching the web page in the server.

### Claim 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.

### Claim 9 (depends on 8)

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.

### Claim 10 (depends on 8)

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.

### Claim 11 (depends on 8)

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

### Claim 12 (depends on 8)

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

### Claim 13 (depends on 8)

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

### Claim 14 (depends on 8)

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.

### Claim 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.

### Claim 16 (depends on 15)

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.

### Claim 17 (depends on 15)

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.

### Claim 18 (depends on 15)

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

### Claim 19 (depends on 15)

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

### Claim 20 (depends on 15)

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.
