The negotiation is done at the HTTP level.
We can explore what are the influence of an HTTP HEAD or GET and analyzes the answers. [https://bugzilla.mozilla.org/show_bug.cgi?id=901569#c1 An example of analysis]. Often there will be redirects as indicated by the status code <code>301</code>, <code>302</code>, <code>307</code> or <code>308</code>, with a <code>Location:</code> HTTP header <code>Location: http://m.example.com/</code>. (Be careful, some sites send location all in lowercase, in case you are grepping through HTTP headers)
Once we have identified that it is really done server-side, we can add the whiteboard flag '''[serversidesniff]'''.An [https://bugzilla.mozilla.org/show_bug.cgi?id=901569#c1 example of an analysis of server side detection]. === Client Side User Agent Detection === '''[jslib]'''
* [http://curl.haxx.se/ curl]
* [http://httpie.org/ httpie]
=== Things to think about when testing ===