Mechanism for distinguishing between content to be served through first or second delivery channels

US9729605B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9729605-B2
Application numberUS-201314138777-A
CountryUS
Kind codeB2
Filing dateDec 23, 2013
Priority dateDec 27, 2012
Publication dateAug 8, 2017
Grant dateAug 8, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Described herein are methods, apparatus and systems for selectively delivering content through one of two communication channels, one being origin to client and the other being from or through a CDN to client. Thus a client may choose to request content from a CDN and/or from an origin server. This disclosure sets forth techniques for, among other things, distinguishing between which channel to use for a given object, using the CDN-client channel to obtain the performance benefit of doing so, and reverting to the origin-client channel where content may be private, sensitive, corrupted, or otherwise considered to be unsuitable from delivery from and/or through the CDN.

First claim

Opening claim text (preview).

The invention claimed is: 1. A system for selecting either a first server or a second server to deliver an object to a client device, comprising: a first server, a second server, and a client device, each comprising circuitry forming one or more processors and a storage device having a non-transitory computer-readable medium; wherein the first server comprises an origin server associated with a content provider and the second server comprises a proxy server for delivering objects from the origin server to client devices; the non-transitory computer-readable medium of the first server holding a first set of instructions for execution by the one or more processors of the first server, the first set of instructions comprising instructions for the first server to: that upon execution cause the first server to: modify an HTML file by rewriting a reference to an object in the HTML file to include a hash for the object and by inserting a script to be executed by the client device; send the modified HTML file to the client device; the non-transitory computer-readable medium of the client device holding a second set of instructions for execution by the one or more processors of the client device, the second set of instructions comprising instructions for the client device to receive the modified HTML file, execute the script, and, based upon in response to execution of the script, send a request for the object to the second server; the non-transitory computer-readable medium of the second server holding a third set of instructions for execution by the one or more processors of the second server, the third set of instructions comprising instructions for the second server to, upon receiving the request for the object from the client device: request the object from the first server; receive a first response from the first server in response to the second server's request, the first response including particular data, and send a second response to the client device in response to the request for the object from the client device, the second response including the particular data; the second set of instructions further comprising instructions for the client device to receive the second response from the second server, and based on the second response, determine whether to request the object from the first server; wherein said determining by the client device whether to request the first object from the first server comprises, in response to execution of the script, calculating a hash for at least a portion of the particular, and comparing the calculated hash with the hash for the object that was in the modified HTML file, and: (i) upon a determination that the hashes do not match, requesting the object from the first server; and (ii) upon a determination that the hashes match, determining that the particular data represents the object, and in response loading the particular data potentially corresponding to the object into a web page; wherein the second server's request for the object from the first server is a request for a public object and the client device's request for the object from the first server is a request for a private object. 2. The system of claim 1 , wherein the first server comprises an origin server associated with a content provider and the second server comprises a proxy server operated by a content delivery network on behalf of the content provider. 3. The system of claim 1 , wherein the third set of instructions further comprising instructions for the second server to request requests the object from the first server without forwarding cookies. 4. The system of claim 1 , wherein the client device's request for the object from the second server includes a URI for the object, the URI including the hash for the object. 5. The system of claim 1 , wherein the object is any of an image, a CSS file, and a script. 6. The system of claim 1 , wherein the client device executes a browser application. 7. A method operative at a client device for selecting either a first server or a second server from which to retrieve an object, comprising: receiving an HTML file, the HTML file including at least one reference to an object, the at least one reference including an HTML attribute providing a hash of the object, the HTML file further including a script; requesting the object from a first server; receiving a response from the first server that includes particular data, the particular data being available from the second server with a request for a public object; executing the script, and in response to execution of the script: calculating a hash for the particular data; comparing the calculated hash, which is for the particular data potentially, to the hash provided in the HTML attribute for the referenced object, so as to determine whether the particular data represents the object; based on the comparison, determining whether to request the object from a second server, wherein said determining comprises (i) upon a determination that the hashes do not match, determining to request the object from the second server, said request being for a private object; and (ii) upon a determination that the hashes match, determining that the particular data into a web page; wherein the second server comprises an origin server associated with a content provider and the first server comprises a proxy server for delivering objects from the origin server. 8. The method of claim 7 , wherein the first server comprises a server operated by a service provider on behalf of content providers and the second server comprises an origin server associated with a given one of the content providers. 9. The method of claim 7 , wherein the object is any of an image, a CSS file, and a script. 10. The system of claim 1 , wherein requests for public objects have at least one characteristic that requests for private object do not have, the at least one characteristic of requests for public objects being any of: no cookies, no authentication to origin, sent to public IP address. 11. The method of claim 7 , wherein requests for public objects have at least one characteristic that requests for private object requests do not have, the at least one characteristic of requests for public objects being any of: no cookies, no authentication to origin, sent to public IP address.

Assignees

Inventors

Classifications

  • Electricity · mapped topic

  • H04L67/02Primary

    based on web technology, e.g. hypertext transfer protocol [HTTP] · CPC title

  • Electricity · mapped topic

  • Storing data temporarily at an intermediate stage, e.g. caching · CPC title

  • Grouping or aggregating service requests, e.g. for unified processing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9729605B2 cover?
Described herein are methods, apparatus and systems for selectively delivering content through one of two communication channels, one being origin to client and the other being from or through a CDN to client. Thus a client may choose to request content from a CDN and/or from an origin server. This disclosure sets forth techniques for, among other things, distinguishing between which channel to…
Who is the assignee on this patent?
Akamai Tech Inc, Akamai Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L67/02. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 08 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).