"Mozilla/5.0" и "как Gecko": веб-приложения по-прежнему тестируют строки пользовательских агентов Firefox?
Простите, если это неправильный сайт, чтобы задать этот вопрос; некоторые аналогичные вопросы были закрыты в Web Stack Exchange, поэтому я задал этот вопрос здесь. При необходимости смело переносите этот вопрос.
Многие современные браузеры идентифицируют себя со строками пользовательских агентов, содержащими Mozilla/5.0
или же Gecko
(как в like Gecko
), что имеет смысл только для Firefox (и более поздних версий Netscape Navigator).
Почему это все еще используется? Если, скажем, Chrome (последняя версия на момент написания этой статьи в Windows 8.1 64-bit) идентифицировал себя как
Chrome/32.0.1700.107 (Windows NT 6.3; WOW64) AppleWebKit/537.36
вместо
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36
некоторые сайты не будут работать правильно? Есть ли еще веб-приложения, которые полагаются на эти подстроки в строке агента пользователя?
Для справки, строка пользовательского агента для Firefox 27 в 64-битной Windows 8.1:
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
2 ответа
Хорошо, я нашел ответ в Stack Overflow: почему Chrome и IE помещают "Mozilla 5.0" в User-Agent, который они отправляют на сервер? (кредит переходит к Joatis)
Это в основном исторический след, сохраняемый для совместимости с некоторыми (очень) старыми веб-сайтами. Оказывается, что в старые времена некоторые веб-сайты отказывались обслуживать определенные типы контента (например, встроенные фреймы) браузерам со строками пользовательских агентов, которые не содержали подстрок, таких как "Mozilla", в том числе Internet Explorer в то время. Microsoft обошла эту проблему, представившись Mozilla:
Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)
В конечном итоге все остальные последовали его примеру, и соглашение застряло. Несмотря на то, что в настоящее время считается плохой практикой обслуживать другой контент на основе объявленной строки пользовательского агента, некоторые веб-сайты все еще полагаются на то, что пользовательский агент отслеживает выборочное обслуживание контента. (Черт, мой личный веб-сайт немного нюхает UA, чтобы заблокировать известных спам-ботов!)
Я все еще думаю, что есть некоторые веб-приложения, которые используют его, но я не думаю, что особенно многие используют его для чего-либо.
Я спрашиваю, может быть, немного глупо, но для чего вам нужна информация?