# How will user-agent client hints work?

DevFeed: [How will user-agent client hints work?](<https://devfeed.tech/articles/how-will-user-agent-client-hints-work-19101.md>)

Original publisher: [Read original article](<https://httptoolkit.com/blog/user-agent-client-hints/>)

Author: HTTP Toolkit; Tim Perry

Published: 2020-05-06T17:00:00Z

Content type: tutorial

Language: en

Sources: [HTTP Toolkit](<https://devfeed.tech/sources/http-toolkit.md>)

Topics: [HTTP](<https://devfeed.tech/topics/http.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [browsers](<https://devfeed.tech/tags/browsers.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [http](<https://devfeed.tech/tags/http.md>), [standards](<https://devfeed.tech/tags/standards.md>)

## AI overview

This article explains how browsers are expected to reduce the detail and uniqueness of the User-Agent HTTP header and provide more specific information through opt-in user-agent client hints. It discusses privacy, compatibility, User-Agent sniffing, and the planned use of Accept-CH and Sec-CH-UA-* headers.

## Source excerpt

In the coming months, browsers are going to start killing the User-Agent HTTP header to replace it with user-agent client hints, a set of opt-in Sec-CH-UA-* headers. Maybe you've heard about this already, maybe that all sounds great, but what exactly does this mean in practice? Let's talk about how the Accept-CH and Sec-CH-UA-* headers will work, how you can test that with your own services today, and what comes next. What's the current situation? Right now the user agent (UA) includes your browser version, OS version and architecture, specific mobile phone manufacturer & model, and more. This creates a wide range of unique user agent header values, and that means a server & proxies can use this header (along with other data points) to fingerprint users - to recognize & track individual people without using cookies or other restricted tracking mechanisms. In addition, many sites use UAs to decide which content to server. This UA 'sniffing' has historically been abused, blocking functional browsers from accessing services when they don't fit a whitelist of known UA formats. That in turn has resulted in UAs trying to preserve backward compatibility, and UA strings gaining more and more cruft that can never be removed. Right now, 100% of popular browsers' user agents start with Mozilla/5.0, for instance. Not great. As a case in point, here's a user agent for Chrome on Android: Mozilla/5.0 (Linux; Android 9; Pixel 2 XL Build/PPP3.180510.008) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Mobile Safari/537.36 Very specific, and very inaccurate. In reality, there's no KHTML, Gecko, Safari or Mozilla involved. All this information is sent to every service your browser communicates with in any way. This is a mess. What's the plan? The solution is not to remove the User-Agent header completely. For compatibility reasons it will still be sent, probably forever, but 'frozen'. The plan is to progressively reduce the number of unique UA values, by grouping more and m