структура запроса ['HTTP_USER_AGENT'] в современных браузерах - PullRequest
1 голос
/ 22 декабря 2011

Я столкнулся с проблемой сафари, учитывая политику использования файлов cookie в iframes ... Также я нашел для этого рабочее решение, но для его работы мне нужно определить, в каком браузере просматривает пользователь.

Оригинальное решениекак искать в HTTP_USER_AGENT (django) слове - сафари.Проблема здесь:

Safari Windows XP на WM User Agent - Mozilla / 5.0 (Windows NT 5.1) AppleWebKit / 534.52.7 (KHTML, как Gecko) Версия / 5.1.2 Safari /534.52.7

Пользовательский агент Chrome Linux - Mozilla / 5.0 (X11; Linux i686) AppleWebKit / 535.7 (KHTML, как Gecko) Chrome / 16.0.912.63 Safari / 535.

Поэтому я изо всех сил пытаюсь найти информацию о том, что делает User Agent и как ее анализировать, чтобы получить точные результаты.Конечно, в этом случае я могу добавить лишнее, если нет слова «хром», но как насчет chromium konqueror и любых других второстепенных браузеров ...

Ответы [ 2 ]

0 голосов
/ 15 января 2012

Итак, я обнаружил, что в User agent может быть любая информация, которую вы хотите.

Существуют некие абстрактные правила, с помощью которых вы можете определить браузер, но эти правила не распространяются на все браузеры.

Во время войн браузеров многие веб-серверы были настроены на отправку только тех веб-страниц, которые требовали дополнительных функций клиентам, которые были определены как некоторая версия Mozilla. По этой причине большинство веб-браузеров используют значение User-Agent следующим образом: Mozilla/[version] ([system and browser information]) [platform] ([platform details]) [extensions].

Подробнее @ http://en.wikipedia.org/wiki/User_agent

В моем случае я посмотрел http://www.user -agents.org / и определил, что только Chrome выдает себя за Safari в последнем разделе.

0 голосов
/ 22 декабря 2011

http://www.quirksmode.org/js/detect.html

Сначала найдите слово Chrome, а затем найдите Safari.

...