IP Library Granted Patent US 11,323,537
Granted Patent B1
US 11,323,537 · App. 17/476,262 · Granted May 3, 2022

Generating early hints informational responses at an intermediary server

Inventors: Alex Krivit (Edwards, CO); Rustam Xing Lalkaka (San Francisco, CA); Samantha Aki Shugaeva (Palo Alto, CA); Edward H. Wang (Oakland, CA); Yuchen Wu (Pacifica, CA)
Assignee: CLOUDFLARE, INC.
H04L67/2847
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,323,537
App. No.
17/476,262
Granted
May 3, 2022
Kind
B1
Abstract

An intermediary server determines, for an asset handled by an origin server, piece(s) of content for inclusion in link header field(s) in an informational response that signifies that the piece(s) of content are predicted to be linked within a final response for the asset. The intermediary server generates an informational response that includes the link header field(s) and responds to a request from a client with the informational response. The intermediary server transmits the request to the origin server. The intermediary server receives the final response to the request from the origin server, and transmits the final response to the client.

Claims (56)

1. A method, comprising:

determining, at an intermediary server, for an asset that is handled by an origin server, one or more pieces of content for inclusion in one or more link header fields in an informational response that signifies that the one or more pieces of content are predicted to be linked within a final response for the asset;

receiving, at the intermediary server, a request from a client, wherein the request identifies the asset;

generating an informational response that includes one or more link header fields that reference the one or more pieces of content respectively;

transmitting, from the intermediary server to the client, the generated informational response that includes the one or more link header fields, wherein the generated informational response is transmitted prior to a final response for the request;

transmitting the request from the intermediary server to the origin server;

receiving, from the origin server, a final response to the request;

transmitting, from the intermediary server to the client, the final response to the request;

determining, from the final response, that a piece of content that was previously predicted to be linked within the final response is not linked within the final response; and

generating, in response to a subsequent request that identifies the asset that is handled by the origin server, an informational response that does not include a link header that references that determined piece of content that is not linked within the final response.

2. The method of claim 1 , further comprising:

wherein determining one or more pieces of content for inclusion in the one or more link header fields in an informational response to the request includes:

retrieving the asset from the origin server; and

parsing the asset to locate the one or more pieces of content.

3. The method of claim 1 , wherein the one or more pieces of content include a link header within the asset that includes a preconnect relation, a prefetch relation, or a preload relation.

4. The method of claim 1 , wherein the one or more pieces of content include a resource that is shared across a plurality of assets of a same domain.

5. The method of claim 1 , wherein prior to receiving the final response to the request, retrieving the one or more pieces of content at the intermediary server.

6. The method of claim 1 , wherein the origin server does not support transmission of the informational response.

7. A non-transitory medium that provides instructions that, if executed by a processor, will cause said processor to perform operations comprising, comprising:

determining, at an intermediary server, for an asset that is handled by an origin server, one or more pieces of content for inclusion in one or more link header fields in an informational response that signifies that the one or more pieces of content are predicted to be linked within a final response for the asset;

receiving, at the intermediary server, a request from a client, wherein the request identifies the asset;

generating an informational response that includes one or more link header fields that reference the one or more pieces of content respectively;

transmitting, from the intermediary server to the client, the generated informational response that includes the one or more link header fields, wherein the generated informational response is transmitted prior to a final response for the request;

transmitting the request from the intermediary server to the origin server;

receiving, from the origin server, a final response to the request;

transmitting, from the intermediary server to the client, the final response to the request;

determining, from the final response, that a piece of content that was previously predicted to be linked within the final response is not linked within the final response; and

generating, in response to a subsequent request that identifies the asset that is handled by the origin server, an informational response that does not include a link header that references that determined piece of content that is not linked within the final response.

8. The non-transitory medium of claim 7 , further comprising:

wherein determining one or more pieces of content for inclusion in the one or more link header fields in an informational response to the request includes:

retrieving the asset from the origin server; and

parsing the asset to locate the one or more pieces of content.

9. The non-transitory medium of claim 7 , wherein the one or more pieces of content include a link header within the asset that includes a preconnect relation, a prefetch relation, or a preload relation.

10. The non-transitory medium of claim 7 , wherein the one or more pieces of content include a resource that is shared across a plurality of assets of a same domain.

11. The non-transitory medium of claim 7 , wherein prior to receiving the final response to the request, retrieving the one or more pieces of content at the intermediary server.

12. The non-transitory medium of claim 7 , wherein the origin server does not support transmission of the informational response.

13. An intermediary server, comprising:

a processor; and

a non-transitory machine-readable storage medium coupled to the processor, wherein the non-transitory machine-readable storage medium stores instructions that, when executed by the processor, causes the intermediary server to perform the following operations:

determine for an asset that is handled by an origin server, one or more pieces of content for inclusion in one or more link header fields in an informational response that signifies that the one or more pieces of content are predicted to be linked within a final response for the asset;

receive a request from a client, wherein the request identifies the asset;

generate an informational response that includes one or more link header fields that reference the one or more pieces of content respectively;

transmit, from the intermediary server to the client, the generated informational response that includes the one or more link header fields, wherein the generated informational response is transmitted prior to a final response for the request;

transmit the request from the intermediary server to the origin server;

receive, from the origin server, a final response to the request;

transmit, from the intermediary server to the client, the final response to the request;

determine, from the final response, that a piece of content that was previously predicted to be linked within the final response is not linked within the final response; and

generate, in response to a subsequent request that identifies the asset that is handled by the origin server, an informational response that does not include a link header that references that determined piece of content that is not linked within the final response.

14. The intermediary server of claim 13 , wherein the operations further comprise:

wherein the determination of the one or more pieces of content for inclusion in the one or more link header fields in an informational response to the request includes:

retrieve the asset from the origin server; and

parse the asset to locate the one or more pieces of content.

15. The intermediary server of claim 13 , wherein the one or more pieces of content include a link header within the asset that includes a preconnect relation, a prefetch relation, or a preload relation.

16. The intermediary server of claim 13 , wherein the one or more pieces of content include a resource that is shared across a plurality of assets of a same domain.

17. The intermediary server of claim 13 , wherein the operations further comprise: wherein prior to receiving the final response to the request, retrieve the one or more pieces of content at the intermediary server.

18. The intermediary server of claim 13 , wherein the origin server does not support transmission of the informational response.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2021
From: KRIVIT, ALEX; LALKAKA, RUSTAM XING; SHUGAEVA, SAMANTHA AKI; WANG, EDWARD H.; WU, YUCHEN
To: CLOUDFLARE, INC.
Reel/Frame 057494/0410 →