IP Library Granted Patent US 12,028,434
Granted Patent B2
US 12,028,434 · App. 17/734,944 · Granted Jul 2, 2024

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/5681
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,028,434
App. No.
17/734,944
Granted
Jul 2, 2024
Kind
B2
Abstract

An intermediary server receives a request from a client that identifies an asset that is handled by an origin server. The intermediary server generates an informational response that includes one or more link header fields that reference one or more pieces of content respectively that are predicted by the intermediary server to be linked within a final response for the asset. The intermediary server transmits the generated informational response to the client prior to a final response for the request. The intermediary server transmits the request to the origin server and receives a final response to the request. The intermediary server transmits the final response to the request to the client.

Claims (50)

1. A method, comprising:

receiving, at an intermediary server, a request from a client, wherein the request identifies an asset that is handled by an origin server;

generating, at the intermediary server, an informational response that includes one or more link header fields that reference one or more pieces of content respectively that are predicted by the intermediary server to be linked within a final response for the asset;

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

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

2. The method of claim 1 , further comprising:

wherein the one or more pieces of content that are predicted to be linked within the final response for the asset are predicted by analyzing a previous full response.

3. The method of claim 2 , wherein the one or more pieces of content are predicted to be linked within the final response for the asset due to their inclusion within the previous full response as 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 , further comprising:

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.

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

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

receiving, at an intermediary server, a request from a client, wherein the request identifies an asset that is handled by an origin server;

generating, at the intermediary server, an informational response that includes one or more link header fields that reference one or more pieces of content respectively that are predicted by the intermediary server to be linked within a final response for the asset;

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

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

9. The non-transitory machine-readable storage medium of claim 8 , wherein the operations further comprise:

wherein the one or more pieces of content that are predicted to be linked within the final response for the asset are predicted by analyzing a previous full response.

10. The non-transitory machine-readable storage medium of claim 9 , wherein the one or more pieces of content are predicted to be linked within the final response for the asset due to their inclusion within the previous full response as a preconnect relation, a prefetch relation, or a preload relation.

11. The non-transitory machine-readable storage medium of claim 8 , wherein the one or more pieces of content include a resource that is shared across a plurality of assets of a same domain.

12. The non-transitory machine-readable storage medium of claim 8 , wherein prior to receiving the final response to the request, retrieving the one or more pieces of content at the intermediary server.

13. The non-transitory machine-readable storage medium of claim 8 , wherein the operations further comprise:

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.

14. The non-transitory machine-readable storage medium of claim 8 , wherein the origin server does not support transmission of the informational response.

15. 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:

receiving, at the intermediary server, a request from a client, wherein the request identifies an asset that is handled by an origin server;

generating, at the intermediary server, an informational response that includes one or more link header fields that reference one or more pieces of content respectively that are predicted by the intermediary server to be linked within a final response for the asset;

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

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

16. The intermediary server of claim 15 , wherein the operations further comprise:

wherein the one or more pieces of content that are predicted to be linked within the final response for the asset are predicted by analyzing a previous full response.

17. The intermediary server of claim 16 , wherein the one or more pieces of content are predicted to be linked within the final response for the asset due to their inclusion within the previous full response as a preconnect relation, a prefetch relation, or a preload relation.

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

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

20. The intermediary server of claim 15 , wherein the operations further comprise:

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.

21. The intermediary server of claim 15 , 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 Oct 7, 2022
From: KRIVIT, ALEX; LALKAKA, RUSTAM XING; SHUGAEVA, SAMANTHA AKI; WANG, EDWARD H.; WU, YUCHEN
To: CLOUDFLARE, INC.
Reel/Frame 061346/0481 →
Continuity (2)
Continuation 17476262 · Sep 15, 2021
Related Publication 20230088115A1 · Mar 23, 2023