[1] IEMobile Team Weblog : Detecting Internet Explorer Mobile's User-Agent on the server ( 版) <http://blogs.msdn.com/iemobile/archive/2006/08/03/Detecting_IE_Mobile.aspx>
At first glance, it might look like we removed useful stuff from the User-Agent header, but that's not the case. We've always sent a batch of additional headers along that contain all the good stuff, which you should use if you need more information to render a page properly. They're designed for this type of work; sniffing the User-Agent isn't. We've got information available as to screen size, color depth, operating system, CPU type, and even if VoIP is supported.
The additional headers we send are:
- UA-pixels: {i.e. 240x320}
- UA-color: {mono2 | mono4 | color8 | color16 | color24 | color32}
- UA-OS: {Windows CE (POCKET PC) - Version 3.0}
- UA-CPU = {i.e. ARM SA1110}
- UA-Voice = {TRUE | FALSE}
These headers have been around (other than UA-voice) since at least Windows Mobile 2002, and their purpose is to help you make rendering decisions if you have to do layout adjustments.
Note that on Smartphones, we may not have the UA-CPU information; it's a privileged API, and we run unprivileged, for security purposes. The newer release will fix this, as we can at least tell you ARM or X86 builds, even if we can't locate the processor specifics.
[2] draft-mutz-http-attributes-01 - User-Agent Display Attributes ( ( 版)) <http://tools.ietf.org/html/draft-mutz-http-attributes-01>