US12452193B1ActiveUtility

Automatic speculation configuration management

60
Assignee: CLOUDFLARE INCPriority: Sep 25, 2024Filed: Sep 25, 2024Granted: Oct 21, 2025
Est. expirySep 25, 2044(~18.2 yrs left)· nominal 20-yr term from priority
H04L 47/83H04L 47/788
60
PatentIndex Score
0
Cited by
57
References
21
Claims

Abstract

Automatic speculation configuration management is described. An intermediary server receives a request from a client. The resource is retrieved from the origin server, where the resource includes link(s) to other resource(s). The intermediary server generates and transmits a response that includes a header that references a speculation configuration for prefetching at least one of the other resource(s). The intermediary server receives a request for the speculation configuration from the client. The intermediary server generates and transmits a response to the client that includes the speculation configuration. The intermediary server receives a prefetching request from the client for one of the resources indicated in the speculation configuration, retrieves that resource, and transmits a response to the client with that resource.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method, comprising:
 receiving, at an intermediary server, a first request from a client network application that identifies a first resource that is handled by an origin server; 
 retrieving the identified first resource from the origin server, wherein the retrieved first resource includes a set of one or more links to a set of one or more second resources respectively; 
 generating a first response to the first request, wherein the generated first response includes a first header that includes a reference to a configuration for speculatively prefetching at least one of the set of second resources, and wherein the generated first response includes the retrieved first resource; 
 transmitting the generated first response to the client network application; 
 receiving, from the client network application, a second request for the configuration for speculatively prefetching at least one of the set of second resources; 
 transmitting a second response to the client network application that includes the configuration for speculatively prefetching the at least one of the set of second resources; 
 receiving, from the client network application, a third request for a third resource that corresponds to the at least one of the set of second resources indicated in the configuration, wherein the third request includes a second header that indicates that the third request is for prefetching the third resource; 
 retrieving the third resource; and 
 transmitting, to the client network application, a third response that includes the third resource. 
 
     
     
       2. The method of  claim 1 , wherein the configuration further includes a value that indicates when the client network application is to speculatively prefetch the at least one of the set of second resources. 
     
     
       3. The method of  claim 2 , wherein the value is one of:
 a first value that indicates that the client network application is to speculatively prefetch the at least one of the set of second resources without waiting for user interaction; 
 a second value that indicates that the client network application is to speculatively prefetch a particular one of the at least one of the set of second resources responsive to detecting a pointer is hovered over a link for that particular one of the at least one of the set of second resources for a threshold amount of time; or 
 a third value that indicates that the client network application is to speculatively prefetch a particular one of the at least one of the set of second resources responsive to detecting a pointer down or touch down is made on a link for that particular one of the at least one of the set of second resources. 
 
     
     
       4. The method of  claim 1 , further comprising:
 generating a probability of navigation from that first retrieved resource to each of the set of second resources; 
 wherein prior to transmitting the configuration for speculatively prefetching the at least one of the set of second resources, determining the at least one of the set of second resources including considering the generated probability of navigation from the first retrieved resource to each of the set of second resources. 
 
     
     
       5. The method of  claim 4 , wherein generating the probability of navigation is done by a prediction service that operates on feature embeddings created from request logs, wherein the feature embeddings are computed for requests for the first retrieved resource, requests for each of the set of second resources, and a combined source to destination referrer-based navigation. 
     
     
       6. The method of  claim 4 , wherein the configuration further includes a value that indicates when the client network application is to speculatively prefetch the at least one of the set of second resources, wherein the value is based at least in part on the generated probability of navigation from the first retrieved resource to the at least one of the set of second resources. 
     
     
       7. The method of  claim 1 , wherein retrieving the identified first resource from the origin server includes:
 transmitting a fourth request that identifies the first resource to the origin server; and 
 receiving a fourth response from the origin server that includes the identified first resource, wherein the second response does not include a header that includes a reference to configuration for speculatively prefetching. 
 
     
     
       8. A non-transitory computer-readable storage medium that, if executed by a processor of an intermediary server, will cause said intermediary server to perform operations, comprising:
 receiving a first request from a client network application that identifies a first resource that is handled by an origin server; 
 retrieving the identified first resource from the origin server, wherein the retrieved first resource includes a set of one or more links to a set of one or more second resources respectively; 
 generating a first response to the first request, wherein the generated first response includes a first header that includes a reference to a configuration for speculatively prefetching at least one of the set of second resources, and wherein the generated first response includes the retrieved first resource; 
 transmitting the generated first response to the client network application; 
 receiving, from the client network application, a second request for the configuration for speculatively prefetching at least one of the set of second resources; 
 transmitting a second response to the client network application that includes the configuration for speculatively prefetching the at least one of the set of second resources; 
 receiving, from the client network application, a third request for a third resource that corresponds to the at least one of the set of second resources indicated in the configuration, wherein the third request includes a second header that indicates that the third request is for prefetching the third resource; 
 retrieving the third resource; and 
 transmitting, to the client network application, a third response that includes the third resource. 
 
     
     
       9. The non-transitory computer-readable storage medium of  claim 8 , wherein the configuration further includes a value that indicates when the client network application is to speculatively prefetch the at least one of the set of second resources. 
     
     
       10. The non-transitory computer-readable storage medium of  claim 9 , wherein the value is one of:
 a first value that indicates that the client network application is to speculatively prefetch the at least one of the set of second resources without waiting for user interaction; 
 a second value that indicates that the client network application is to speculatively prefetch a particular one of the at least one of the set of second resources responsive to detecting a pointer is hovered over a link for that particular one of the at least one of the set of second resources for a threshold amount of time; or 
 a third value that indicates that the client network application is to speculatively prefetch a particular one of the at least one of the set of second resources responsive to detecting a pointer down or touch down is made on a link for that particular one of the at least one of the set of second resources. 
 
     
     
       11. The non-transitory computer-readable storage medium of  claim 8 , wherein the operations further comprise:
 generating a probability of navigation from that first retrieved resource to each of the set of second resources; 
 wherein prior to transmitting the configuration for speculatively prefetching the at least one of the set of second resources, determining the at least one of the set of second resources including considering the generated probability of navigation from the first retrieved resource to each of the set of second resources. 
 
     
     
       12. The non-transitory computer-readable storage medium of  claim 11 , wherein generating the probability of navigation is done by a prediction service that operates on feature embeddings created from request logs, wherein the feature embeddings are computed for requests for the first retrieved resource, requests for each of the set of second resources, and a combined source to destination referrer-based navigation. 
     
     
       13. The non-transitory computer-readable storage medium of  claim 11 , wherein the configuration further includes a value that indicates when the client network application is to speculatively prefetch the at least one of the set of second resources, wherein the value is based at least in part on the generated probability of navigation from the first retrieved resource to the at least one of the set of second resources. 
     
     
       14. The non-transitory computer-readable storage medium of  claim 8 , wherein retrieving the identified first resource from the origin server includes:
 transmitting a fourth request that identifies the first resource to the origin server; and 
 receiving a fourth response from the origin server that includes the identified first resource, wherein the second response does not include a header that includes a reference to configuration for speculatively prefetching. 
 
     
     
       15. An intermediary server, comprising:
 a processing system; and 
 a non-transitory machine-readable storage medium coupled to the processing system, wherein the non-transitory machine-readable storage medium stores instructions that, when executed by the processing system, causes the intermediary server to perform operations including:
 receiving a first request from a client network application that identifies a first resource that is handled by an origin server, 
 retrieving the identified first resource from the origin server, wherein the retrieved first resource includes a set of one or more links to a set of one or more second resources respectively, 
 generating a first response to the first request, wherein the generated first response includes a first header that includes a reference to a configuration for speculatively prefetching at least one of the set of second resources, and wherein the generated first response includes the retrieved first resource, 
 transmitting the generated first response to the client network application, 
 receiving, from the client network application, a second request for the configuration for speculatively prefetching at least one of the set of second resources, 
 transmitting a second response to the client network application that includes the configuration for speculatively prefetching the at least one of the set of second resources, 
 receiving, from the client network application, a third request for a third resource that corresponds to the at least one of the set of second resources indicated in the configuration, wherein the third request includes a second header that indicates that the third request is for prefetching the third resource, 
 retrieving the third resource, and 
 transmitting, to the client network application, a third response that includes the third resource. 
 
 
     
     
       16. The intermediary server of  claim 15 , wherein the configuration further includes a value that indicates when the client network application is to speculatively prefetch the at least one of the set of second resources. 
     
     
       17. The intermediary server of  claim 16 , wherein the value is one of:
 a first value that indicates that the client network application is to speculatively prefetch the at least one of the set of second resources without waiting for user interaction; 
 a second value that indicates that the client network application is to speculatively prefetch a particular one of the at least one of the set of second resources responsive to detecting a pointer is hovered over a link for that particular one of the at least one of the set of second resources for a threshold amount of time; or 
 a third value that indicates that the client network application is to speculatively prefetch a particular one of the at least one of the set of second resources responsive to detecting a pointer down or touch down is made on a link for that particular one of the at least one of the set of second resources. 
 
     
     
       18. The intermediary server of  claim 15 , wherein the operations further comprise:
 generating a probability of navigation from that first retrieved resource to each of the set of second resources; 
 wherein prior to transmitting the configuration for speculatively prefetching the at least one of the set of second resources, determining the at least one of the set of second resources including considering the generated probability of navigation from the first retrieved resource to each of the set of second resources. 
 
     
     
       19. The intermediary server of  claim 18 , wherein generating the probability of navigation is done by a prediction service that operates on feature embeddings created from request logs, wherein the feature embeddings are computed for requests for the first retrieved resource, requests for each of the set of second resources, and a combined source to destination referrer-based navigation. 
     
     
       20. The intermediary server of  claim 18 , wherein the configuration further includes a value that indicates when the client network application is to speculatively prefetch the at least one of the set of second resources, wherein the value is based at least in part on the generated probability of navigation from the first retrieved resource to the at least one of the set of second resources. 
     
     
       21. The intermediary server of  claim 15 , wherein retrieving the identified first resource from the origin server includes:
 transmitting a fourth request that identifies the first resource to the origin server; and 
 receiving a fourth response from the origin server that includes the identified first resource, wherein the second response does not include a header that includes a reference to configuration for speculatively prefetching.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.