Почему пользовательские агенты / браузеры лгут
Я прочитал несколько статей об обнаружении функций, и это более надежно, чем обнаружение браузера, потому что браузеры лгут.
Я не мог найти информацию о том, почему они лгут. Кто-нибудь знает причину, почему они это сделали?
2 ответа
Насколько я понимаю, веб-мастера проводят анализ браузера, чтобы найти возможности браузера и ограничить его отправку в браузер. Если браузер лжет о своих возможностях, они получат больше от веб-мастера, вы можете прочитать больше:
Причина проста:
Потому что веб-сайты смотрят на строку агента пользователя и делают предположения о браузере, которые становятся недействительными при обновлении браузера до новой версии.
Это происходит почти с самого начала Интернета. Производители браузеров не хотят, чтобы их новые версии ломали сеть, поэтому они настраивают строку UA, чтобы обмануть код на существующих сайтах.
В конечном счете, если все будут использовать строку UA ответственно и обновлять свои сайты при появлении новых версий браузера, браузерам не нужно будет лгать. Но вы должны признать, что это довольно много.
Обнаружение функций работает лучше, потому что когда новая версия браузера выходит с этой функцией, обнаружение обнаружит ее автоматически, причем ни браузеру не нужно делать ничего особенного, ни владельцу сайта.
Конечно, бывают случаи, когда функция обнаружения не работает идеально, например, если функция существует, но имеет ошибки в конкретном браузере. В этом случае, да, вы можете сделать обнаружение браузера как запасной вариант. Но в большинстве случаев обнаружение функций является гораздо лучшим вариантом.
Еще одна более современная причина - просто избегать требований устанавливать мобильные приложения (где владельцы продуктов контролируют, что я могу и не могу делать с контентом. Нет, спасибо!).
Сегодня Reddit начал блокировать просмотр субреддитов на случай, если они обнаружат мобильный браузер в UserAgent, поэтому мне пришлось изменить его, чтобы иметь возможность просматривать контент.