Even ignoring the tracking problem, using the user agent string instead of feature detection has always been terrible engineering, as it assumes all browsers within a version have the same features. Browsers have always been configurable - often in extreme ways. I don't understand how anybody can simply6 pretend the preferences dialog (and extensions, etc) doesn't exist.
[1] Out of the 15.91 bits of data that Panopticlick was able to collect from my browser, 9.0 bits (56%) were from the user agent. The 2nd largest source is HTTP_ACCEPT at 4.25 bits.
Is there a better solution for server-side feature detection?
Hmm... might be a bit big... how about, since the source code is publicly available, we could just put the browser name and version in there?
User-Agent: Chromium/47.0 (Windows 10)
User-Agent: Firefox/43.0 (GNU/Linux; X11)
User-Agent: Wget/1.15.4 (GNU/Linux)
etc.
Given that current UA strings are abysmal (and sent on every request), this would probably save a few kilobytes worth of headers (images, scripts, stylesheets), so would probably improve performance by some nanoseconds.
They managed to do this with SHA-1 deprecation and a lot of other stuff. So they could just announce that "on February 1st, 2017 we all clean up the clusterfuck User-Agent headers are", bake in the timer and spread the word.
(SHA-1 deprecation only worked because certificates have to be renewed, so any site with working HTTPS is being actively maintained at some level)
Cost: bajillion man-hours of CEOs, companies and committees trying to negotiate that they all do this at once, then about 10 minutes of developer time to actually code this into reality.
Then some sites would be broken, but old stuff eventually rotting and dying is nothing new on the web. Unfortunately, no idea about the numbers, but I suppose it would be low. If someone has the actual statistics on how much sites become practically unusable without a legacy User-Agent header, that'd be great.
Which will cost how much by the standards of 2030? Particularly given HTTP/2 header compression.
But I'm sure even by 2040 there still will be a lot of places with awful network connectivity, where every kilobyte would still matter.
You know, https://panopticlick.eff.org/
Why are you pretending that there is some sort of difference between "tracking a user" and "tracking the user's browser", which is close enough for most tracking purposes? Tracking the browser is tracking a user for a vast majority of people. For browsers on a phone, it is even more likely to be a 1:1 mapping.
> Why are you pretending that there is some sort of difference between "tracking a user" and "tracking the user's browser"
I'm not? That isn't what I said.