I read this beautiful essay on how we’ve come to this user agent string mess. So I started to google up something about user agent string standards, but even the RFC of HTTP is quite shy on information. So I’d like to propose a standardized User Agent string format.
I know, that’s quite impossible, but at least, it would be mentioned on the web, and maybe somebody would catch an eye on this.
Purpose
- For clarity;
- For content separation (if needed, and mostly it shouldn’t be, but we’re living in the world dominated by 5 different browser vendors);
- For statistics harvesting.
Solution
User-Agent: browser-name/version (operating-system/version; charset; locale[; screen-resolution][; geo-location]) [compatible-engine[/version]] [proxy-name[/version]]
- browser-name/version – the real name of a browser (i.e., MSIE/9.0)
- operating-system/version – the real name of OS (i.e., AppleMacOSX/10.5.3)
- charset – the default preferred character set (i.e., utf-8)
- locale – RFC standard locale (i.e., en_US)
- screen-resolution- screen resolution in pixels by pixels by bit depth (i.e., 1920x1080x32)
- geo-location – floating point latitude and longitude values (i.e., 56.946203,24.104287)
- compatible-engine – the engine name (i.e., AppleWebKit/525.13)
- proxy-name – proxy servers could append their name (i.e., Squid/3.1.20)
It’s not far from what we have today, but the problem is that every browser is Mozilla now days.
So it might look like this, for example: Chrome/20.0.1132.57 (WindowsXP/5.1.2600; utf-8; lv_LV; 1920x1200x32; 56.946203,24.104287) AppleWebKit/536.11 Squid/3.1.20