User-Agent в HTTP-заголовке включает три разных браузера, кто прав? - PullRequest
0 голосов
/ 02 июля 2019

У меня странное поведение с приложением.Некоторое содержимое будет отображаться правильно в Internet Explorer, но не будет отображаться вообще в Chrome.Воспроизвести ошибку на другом клиенте невозможно (она работает на обоих), а также я не могу проверить ее на клиенте, который имеет проблему, потому что он находится в производстве, и у меня нет доступа.Единственный способ - сначала проверить логи и посмотреть, что происходит.План состоит в том, чтобы увидеть оба запроса, которые загружают контент с сервера, с IE и с Chrome, и, возможно, попытаться найти какую-либо разницу.

В журналах я вижу что-то вроде: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36 Я не понимаюкак можно в заголовке User-Agent в HTTP-запросе включить три разных браузера ?!Как узнать, из какого браузера был сделан запрос?

1 Ответ

1 голос
/ 02 июля 2019

Это поведение «притворяться кем-то другим» в мире браузера.Многие браузеры (если не все) приняли эту стратегию по практическим причинам.Есть много статей, описывающих эту проблему, например user-agent-string-history

Для рассматриваемого примера: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36, это Chrome 73 для Windows.

Для вопроса ОП в комментарии:

Почему браузер ведет себя так?

- потому что многие веб-сайты / веб-страницы будут нюхать, какой браузер посещаетстраницы, и предоставляют только некоторые функции, если браузер IE / Mozilla / ... (практика программирования BAD, но ... в любом случае, это происходит, особенно в старые времена Интернета).В этом случае, если новый браузер выпущен и хочет показать пользователю ту же функцию для этой страницы, он должен выглядеть как IE / Mozilla /...

Означает ли это, что я не могунайти нужную мне информацию из этих журналов?

Можно.Но вам нужно точно сопоставить User-Agent с базой данных User-Agent, там более 2 100 000 строк User-Agent ... Пожалуйста, проверьте https://developers.whatismybrowser.com/useragents/explore/software_type_specific/web-browser/2

И почему иногда я вижу только одинзапись в свойстве заголовка User-Agent?

Поскольку какой-то пользовательский агент решает не притворяться, что это кто-то другой.Типичным примером является клиент HTTP командной строки, такой как curl , который не должен обрабатывать анализ браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...