Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inconsistencies in the client hints data model and an alternative logical model #153

Open
Steve51D opened this issue Nov 2, 2020 · 0 comments

Comments

@Steve51D
Copy link

Steve51D commented Nov 2, 2020

The data model proposed for client hints is sometimes inconsistent. For example, the Sec-CH-UA header values combines name and version "Chrome"; v="73". In comparison, platform has two separate headers Sec-CH-UA-Platform and Sec-CH-UA-Platform-Version.
Extending the approach used by Sec-CH-UA to other values and using a more logical data model would limit the number of headers and, therefore, reduce the payload impact from ancillary structures such as Accept-CH and Permissions-Policy.

For example, if there were a header per logical component of the system making the request:

  • Browser - Sec-CH-UA - Would look much the same as it does now, just with the full version instead of the significant version (if the browser is willing to expose that)
  • Operating system - Sec-CH-UA-Platform - Would follow the same format as Sec-CH-UA, so you would get something like "Windows"; v="10" or "iOS"; v="14"
  • Hardware - Sec-CH-UA-Hardware - "Pixel 2 XL"; m="?1"; a="arm"

The server loses the fine-grained control over which values are requested but the browser obviously still has full control over whether it sends this information anyway. If the browser (and the user) is willing to send this data then it can be sent. If not, then the relevant parts can be omitted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant