Agent IQ
Informing web servers about device capabilities
...These can be used in the logic of the site on the server side.
When a request is received, it looks at the User Agent String of the incoming header and matches it against the database. If there is a match, the device capabilities are stored as PHP and Javascript variables for you to use in shaping how your site is served out.
If there is no match, the request is re-directed to a javascript 'learning page' where the database is updated with the client capabilities and is redirected back. This happens in a flash.
The 'learning page' uses Javascript and Modernizr. ...