# US 2018/0324269 A1 · Systems and methods for identifying and characterizing client devices

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0324269 A1
- Document ID: US20180324269A1
- Status: Published application
- Kind: A1
- Application number: 15/971,726
- Filed: 2018-05-04
- Published: 2018-11-08
- Earliest claimed: 2011-12-30
- Assignees: Akamai Technologies, Inc.
- Applicants: Akamai Technologies, Inc.
- Inventors: Alec Heller; David H. Kaufman; Eric L. Kobrin; Stephen R. Scaffidi; Walter P. Tetzner
- Web page: https://patentgrep.com/patent/US20180324269A1

## CPC

- H04L 67/303: Terminal profiles
- G06F 16/2237: {Vectors, bitmaps or matrices}
- G06F 16/24575: {using context}
- H04L 41/28: Restricting access to network management systems or functions, e.g. using authorisation function to access network configuration
- H04L 51/212: using filtering or selective blocking
- H04L 63/0823: {using certificates (cryptographic mechanisms or cryptographic arrangements for entity authentication involving certificates H04L9/3263)}
- H04L 63/0876: {based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint}
- H04L 63/105: {Multiple levels of security}
- H04L 63/107: {wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/04: specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
- H04L 67/14: Session management (for real-time applications in data packet communications networks H04L65/1066)
- H04L 67/565: Conversion or adaptation of application format or content (adding application control or application functional data H04L67/561)
- H04L 69/24: Negotiation of communication capabilities
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim at position 1

-38. (canceled)

### Claim 39

A method operable in one or more computers for determining information about a requesting client device, the one or more computers comprising circuitry forming one or more processors and a memory storing instructions to be executed by the one or more processors to perform the method, the method comprising:
at a first computer of the one or more computers, performing an offline configuration process comprising:
creating an index that associates each of a plurality of tokens with one or more known client devices, and creating a lexicon file of tokens used in the index, wherein the index and the lexicon file are established prior to a request for content from a client device;
wherein the lexicon file identifies one or more high-value tokens and one or more other tokens;
send the index and the lexicon file to a second computer of the one or more computers to be stored in the second computer;
at the second computer:
receiving the request for content from a client device, the request including information about the client device;
generating one or more tokens from the information in the request, based on the lexicon file;
identifying the client device as a particular one of the one or more known client devices, based on a comparison of the one or more tokens generated from the information in the request and the index.

### Claim 40 (depends on 39)

The method of claim 39, wherein the identification step comprises, at the second computer, identifying one or more of the tokens generated from the information in the request as high-value tokens in the lexicon file, and based thereon constructing a key into the index based on the identified one or more high value tokens.

### Claim 41 (depends on 39)

The method of claim 39, wherein the plurality of tokens in the index and the one or more tokens generated from the information in the request each represent portions of user-agent strings.

### Claim 42 (depends on 39)

The method of claim 39, wherein the information in the request comprises information in a user-agent header field.

### Claim 43 (depends on 39)

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

### Claim 44 (depends on 39)

The method of claim 39, wherein the client device is a mobile device.

### Claim 45 (depends on 39)

The method of claim 39, wherein the second computer comprises an HTTP proxy server.

### Claim 46

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, the first computer operative upon execution of the instructions to perform an offline configuration process that comprises: create an index that associates each of a plurality of tokens with one or more known client devices, and create a lexicon file of tokens used in the index, wherein the index and the lexicon file are established prior to a request for content from a client device;
wherein the lexicon file identifies one or more high-value tokens and one or more other tokens;
send the index and the lexicon file to a second computer;
the second computer having circuitry forming one or more processors and memory storing instructions to be executed by the one or more processors, the second computer operative upon execution of the instructions to:
(i) receive the request for content from a client device, the request including information about the client device;
(ii) generate one or more tokens from the information in the request, based on the lexicon file;
(iii) identify the client device as a particular one of the one or more known client devices, based on a comparison of the one or more tokens generated from the information in the request and the index.

### Claim 47 (depends on 46)

The system of claim 46, wherein the identification step (iii) comprises identifying one or more of the tokens generated from the information in the request as high-value tokens in the lexicon file, and based thereon constructing a key into the index based on the identified one or more high value tokens.

### Claim 48 (depends on 46)

The system of claim 46, wherein the plurality of tokens in the index and the one or more tokens generated from the information in the request each represent portions of user-agent strings.

### Claim 49 (depends on 46)

The system of claim 46, wherein the plurality of tokens in the index include any of: browser name, operating system name, processor name.

### Claim 50 (depends on 46)

The system of claim 46, wherein the information in the request comprises information in a user-agent header field.

### Claim 51 (depends on 46)

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

### Claim 52 (depends on 46)

The system of claim 46, wherein the client device is a mobile device.

### Claim 53 (depends on 46)

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