Как веб-сайты узнают, какой браузер их посещает - PullRequest
2 голосов
/ 28 ноября 2009

Как веб-сайты узнают, какой браузер их посещает

как я могу это сделать

Вы даете ответ для asp.net c #

Ответы [ 3 ]

10 голосов
/ 28 ноября 2009

Они ищут агента пользователя, переданного в запросе.

В ASP.NET:

Request.ServerVariables["HTTP_USER_AGENT"]

4 голосов
/ 28 ноября 2009

Браузер сообщает серверу, какой это браузер, в строке User-Agent, которую он включает в каждый HTTP-запрос.

Вы можете получить доступ к User-Agent напрямую и проанализировать его самостоятельно или использовать функцию встроенного браузера ASP.NET, которая использует несколько файлов * .browser, регулярные выражения и т. Д.

User-Agent: <%= Request.UserAgent %>
ID: <%= Request.Browser.Id %>
Browser: <%= Request.Browser.Browser %>
Type: <%= Request.Browser.Capabilities["type"] %>
3 голосов
/ 28 ноября 2009

Протокол HTTP предоставляет атрибут заголовка запроса , называемый User-Agent , который клиент (здесь веб-браузер) заполняет с помощью строка, идентифицирующая марку браузера, версию и операционную систему. Как и все элементы заголовка HTTP, эта информация может быть «подделана» или изменена для различных целей (например, различными шлюзами конфиденциальности на стороне клиента и т. Д.), Но обычно она относительно надежна.

Пример такой строки User-Agent (здесь для браузера FireFox, версия 3.5, работающей под Windows XP)

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5

Эта информация, наряду с другими атрибутами из заголовка, может запрашиваться принимающим приложением. Хотя специфика варьируется от одного языка / фреймворка к следующему, могут из этих языков / фреймворков представлять простую объектную модель, которая отражает различные объекты, связанные с протоколом HTTP. В случае заголовка http это обычно происходит из объекта «Запрос» (может быть назван по-другому), поэтому доступ к User-Agent может выглядеть примерно так:

  ClientBrowser = Request.Header("User-Agent")

или, возможно,

  ClientBrowser = HttpHeader.UserAgent

Редактировать : В случае C # / ASP.NET (позднее редактирование вопроса):

ClientBrowser = Request.ServerVariables("HTTP_USER_AGENT")

Кроме того, хотя у вас может возникнуть желание использовать эту информацию напрямую, вы также можете полагаться на различные библиотеки, которые инкапсулируют детали парсинга [очень многих версий] строк User-Agent для выяснения конкретный веб-браузер и даже особые формы javascript, которые должен отправлять такой клиент.

...