IP Library › Granted Patent US 9,692,830
Granted Patent B2
US 9,692,830 · App. 15/210,357 · Granted Jun 27, 2017

Systems and methods for identifying and characterizing client devices

Inventors: Alec Heller (Somerville, MA); David H. Kaufman (Lexington, MA); Eric L. Kobrin (Dania Beach, FL); Stephen R. Scaffidi (Watertown, MA); Walter P. Tetzner (Shirley, MA)
Assignee: Akamai Technologies, Inc.
H04L67/14G06F17/30324G06F17/30528H04L29/06H04L29/08576H04L41/28H04L51/12H04L63/0823H04L63/0876H04L63/105H04L63/107H04L67/02H04L67/2823H04L67/303H04L69/24
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 9,692,830
App. No.
15/210,357
Granted
Jun 27, 2017
Kind
B2
Abstract

The teachings herein generally relate to client-server communications and the delivery of content over computer networks to clients, and provide improved methods, systems, and apparatus for identifying and/or characterizing client devices that are requesting content from a server. For example, based on information sent in a client device's request for content, a web server modified in accordance with the teachings hereof can identify a set of characteristics associated with that client device. Such characteristics might include the model name of the client device, the screen dimensions of the client device, information about the particular operating system or browser name/version it is running, content formats it is capable of consuming, and so on. The web server can use this information to modify and customize its response for the given client device.

Claims (31)

1. A system, comprising:

a first computer that has circuitry forming one or more processors and memory storing instructions to be executed by the one or more processors to operate the first computer to:

(i) generate a list of tokens based on a plurality of sample user agent header fields;

(ii) generating a whitelist by removing one or more tokens from the list, the removed one or more tokens being selected for removal because they are low-value tokens with respect to any of a content delivery process and a content optimization process;

(iii) create a match index, the match index associating each of one or more client devices with a set of one or more tokens from the whitelist, where client devices are identified in the match index by client device identifiers;

(iv) sending the match index to a second computer, to configure the second computer to identify client devices;

the second computer that has circuitry forming one or more processors and memory storing instructions to be executed by the one or more processors to operate the second computer to:

(v) receive and store the match index;

(vii) receive a request for content from a client device;

(viii) generate one or more tokens from information in the request;

(ix) identify the client device as a particular one of one or more known client devices, wherein said identification step includes: with the match index, looking up a particular client device identifier that is associated with the one or more tokens that were generated from the information in the request.

2. The system of claim 1 , wherein the one or more tokens generated from the information in the request represent portions of user-agent strings.

3. The system of claim 1 , wherein the request comprises an HTTP request.

4. The system of claim 1 , wherein the requesting client device is a mobile device.

5. The system of claim 1 , wherein the second computer comprises an HTTP proxy server.

6. A method operable in a plurality of computers for identifying a client device making requests for content, each of the plurality of computers comprising circuitry forming one or more processors and memory storing instructions to be executed by the one or more processors and thereby perform the method, the method comprising:

at a first computer:

generating a list of tokens based on a plurality of sample user agent header fields;

generating a whitelist by removing one or more tokens from the list, the removed one or more tokens being selected for removal because they are low-value tokens with respect to any of a content delivery process and a content optimization process;

sending the whitelist to a second computer to configure the second computer to identify client devices;

creating a match index, the match index associating each of one or more client devices with a set of one or more tokens from the whitelist, where client devices are identified in the match index by client device identifiers;

sending the match index to the second computer;

at the second computer:

receiving and storing the match index;

receiving a request for content from a client device;

generating one or more tokens from information in the request;

identifying the client device as a particular one of one or more known client devices, wherein said identification step includes: with the match index, looking up a particular client device identifier that is associated with the one or more tokens that were generated from the information in the request.

7. The method of claim 6 , wherein the one or more tokens generated from the information in the request represent portions of user-agent strings.

8. The method of claim 6 , wherein the request comprises an HTTP request.

9. The method of claim 6 , wherein the requesting client device comprises a mobile device.

10. The method of claim 6 , wherein the one or more computers include an HTTP proxy server.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2017
From: HELLER, ALEC; KAUFMAN, DAVID H.; KOBRIN, ERIC L.; TETZNER, WALTER P.
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 041608/0976 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2017
From: SCAFFIDI, STEPHEN R.
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 042039/0669 →
Continuity (4)
Continuation 13730428 · Dec 28, 2012
Provisional Application 61595982 · Feb 7, 2012
Provisional Application 61581738 · Dec 30, 2011
Related Publication 20160323387A1 · Nov 3, 2016