Я не совсем согласен с приведенным выше правильным ответом. Реально этот ответ является правильным во многих случаях ... но теоретически это не так. Часто запросы к веб-серверу содержат поле User-Agent, которое теоретически может использоваться для определения информации о разрешениях и свойствах экрана устройства.
Веб-запросы не проходят через клиента в первую очередь. Они передаются на сервер, который затем передает страницу клиенту, поэтому сервер сначала получает запрос ... Например, Ruby on Rails получает запрос через контроллер действий к ресурсу, а затем передает страницу ответу.
Посмотрите на пример синтаксического анализатора UA, например: https://github.com/visionmedia/user-agent
Пример агента пользователя, отправляемого моим компьютером:
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.11 (KHTML, like enter code here`Gecko) Chrome/17.0.963.83 Safari/535.11
Я думаю, что вполне возможно сделать правильное предположение о том, какое разрешение экрана (DPI и т. Д.) Мне дает эта информация через сервер. Вам, конечно, понадобится таблица информации об устройстве для справки.
Для мобильных устройств это становится еще проще. Если пользователь-агент - мобильное сафари для iPad:
Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10
Вы можете с полной уверенностью знать, какое разрешение экрана на сервере. Вы даже можете узнать высоту и ширину браузера с этой информацией. Я подозреваю, что то же самое верно для многих мобильных устройств, таких как Android или Win Mo.
Итак, в итоге, я согласен, что делать это нецелесообразно, но я также не согласен.
Я считаю, что Facebook предпринял крупный проект по каталогизации устройств и разрешений экрана и сделал его открытым исходным кодом, потому что они столкнулись с похожими проблемами при создании мобильного приложения Facebook, например. им пришлось занести в каталог все расхождения между всеми программами визуализации мобильных браузеров, чтобы они могли адаптировать клиентское приложение к каждому отдельному случаю. Возможно, этот проект может иметь необходимую информацию для этого ... в теории.