US2019028560A1PendingUtilityA1

Assessment of content delivery services using performance measurements from within an end user client application

Assignee: AKAMAI TECH INCPriority: Dec 23, 2011Filed: Jun 19, 2018Published: Jan 24, 2019
Est. expiryDec 23, 2031(~5.4 yrs left)· nominal 20-yr term from priority
Inventors:Mark C. Holland
G06F 11/3476G06F 2201/875G06F 11/3419G06F 11/3006H04L 41/14G06F 11/3495H04L 67/02H04L 67/34H04L 67/2804H04L 67/2842H04L 67/22H04L 67/2823H04L 67/561H04L 67/568H04L 67/565H04L 67/535
60
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A system for measuring and monitoring performance of online content is provided. In one embodiment, the system includes an intermediary device, such as a web proxy, that receives client requests for content, such as requests for web pages. The device obtains the requested content, modifies it by applying one or more performance optimizations, and serves it to the client. The device also inserts code into the content for execution by the client to gather and report data reflecting, e.g., how quickly the client is able to get and process the content. The code includes information identifying the modifications the device made, and this is reported with the timing data, so that the effect on performance can be analyzed. In other embodiments, the device selects one of multiple versions of content, and the inserted code contains information identifying the selected version. The foregoing are merely examples; other embodiments are described herein.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 .- 25 . (canceled) 
     
     
         26 . A proxy server in a content delivery network (CDN) that has a plurality of proxy servers delivering content to clients, the proxy server comprising:
 a network interface for receiving a request for a markup language file associated with a web page, the request being received from a client;   circuitry forming one or more processors and memory holding instructions to be executed by the one or more processors to cause the proxy server to respond to the request by:
 obtaining the markup language file from any of an origin server, a CDN network storage subsystem, a cache hierarchy parent, and a local cache; 
 inserting code into the markup language file for execution by the client when processing the markup language file, the code comprising instructions that instruct the client to gather timing information reflecting the client's processing of the markup language file in order to display the web page, and instructions that instruct the client to transmit the timing information in a beacon to the CDN; 
 including in the code an identifier that uniquely identifies at least one of:
 (i) a point of presence in the CDN in which the proxy server resides; 
 (ii) an element from which the proxy server retrieved the markup language file, the network element comprising any of: the local cache, a cache-hierarchy parent, a CDN network storage subsystem, the origin server; 
 (iii) an element from which the proxy server file any of retrieved and will retrieve an embedded object in the markup language file, the network element comprising any of: a local cache, a cache-hierarchy parent, a CDN network storage subsystem, an origin server; 
 
 the code including instructions specifying that the client will transmit the identifier, as a field in the beacon, with the timing information; 
 serving the markup language file with the inserted code to the client, in response to the request. 
   
     
     
         27 . The proxy server of  claim 26 , wherein the client comprises a web browser. 
     
     
         28 . The proxy server of  claim 26 , wherein the markup language file comprises an HTML file. 
     
     
         29 . The proxy server of  claim 26 , wherein the code is JavaScript code that is any of inlined into the markup language file and referenced by a URL inserted into the markup language file. 
     
     
         30 . The proxy server of  claim 26 , wherein the timing information includes information specified in the Navigation Timing or Resource Timing specification. 
     
     
         31 . The proxy server of  claim 26 , wherein the timing information includes one or more timestamps for a processing phase at the client. 
     
     
         32 . The proxy server of  claim 26 , wherein the identifier that uniquely identifies:
 (i) a point of presence in the CDN in which the proxy server resides.   
     
     
         33 . The proxy server of  claim 26 , wherein the identifier that uniquely identifies:
 (ii) a network element from which the proxy server retrieved the markup language file, the network element comprising any of a local cache, a cache-hierarchy parent, a CDN network storage subsystem, the origin server.   
     
     
         34 . The proxy server of  claim 26 , the identifier that uniquely identifies:
 (iii) a network element from which the proxy server file any of retrieved and will retrieve an embedded object in the markup language file, the network element comprising any of a local cache, a cache-hierarchy parent, a CDN network storage subsystem, the origin server.   
     
     
         35 . A method performed by a proxy server in a content delivery network (CDN) that comprises a network interface, circuitry forming one or more processors, and memory holding instructions for execution by the one or more processors to perform the method, the method comprising:
 receiving a request for a markup language file for a web page, the request being received from a client;   in response to the request, the proxy server:
 obtaining the markup language file from any of an origin server, a CDN network storage subsystem, a cache hierarchy parent, and a local cache; 
 inserting code into the markup language file for execution by the client when processing the markup language file, the code comprising instructions that instruct the client to gather timing information reflecting the client's processing of the markup language file in order to display the web page, and instructions that instruct the client to transmit the timing information in a beacon to the CDN; 
 including in the code an identifier that uniquely identifies at least one of:
 (i) a point of presence in the CDN in which the proxy server resides; 
 (ii) an element from which the proxy server retrieved the markup language file, the network element comprising any of: the local cache, a cache-hierarchy parent, a CDN network storage subsystem, the origin server; 
 (iii) an element from which the proxy server file any of retrieved and will retrieve an embedded object in the markup language file, the network element comprising any of: a local cache, a cache-hierarchy parent, a CDN network storage subsystem, an origin server; 
 
 the code including instructions specifying that the client will transmit the identifier, as a field in the beacon, with the timing information; 
 serving the markup language file with the inserted code to the client, in response to the request. 
   
     
     
         36 . The method of  claim 35 , wherein the client comprises a web browser. 
     
     
         37 . The method of  claim 35 , wherein the markup language file comprises an HTML file. 
     
     
         38 . The method of  claim 35 , wherein the code is JavaScript code that is any of inlined into the markup language file and referenced by a URL inserted into the markup language file. 
     
     
         39 . The method of  claim 35 , wherein the timing information includes information specified in the Navigation Timing or Resource Timing specification. 
     
     
         40 . The method of  claim 35 , wherein the timing information includes one or more timestamps for a processing phase at the client. 
     
     
         41 . The method of  claim 35 , wherein the identifier that uniquely identifies:
 (i) a point of presence in the CDN in which the proxy server resides.   
     
     
         42 . The method of  claim 35 , wherein the identifier that uniquely identifies:
 (ii) a network element from which the proxy server retrieved the markup language file, the network element comprising any of a local cache, a cache-hierachy parent, a CDN network storage subsystem, the origin server.   
     
     
         43 . The method of  claim 35 , the identifier that uniquely identifies:
 (iii) a network element from which the proxy server file any of retrieved and will retrieve an embedded object in the markup language file, the network element comprising any of a local cache, a cache-hierarchy parent, a CDN network storage subsystem, the origin server.

Join the waitlist — get patent alerts

Track US2019028560A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.