UA(User-Agent)是一个特殊字符抬头,通过服务器进行识别应用的操作系统、版本类别及标识、CPU型号、浏览器内核、硬件信息及相关型号、浏览器渲染引擎、浏览器语言等。

ua目标是什么(什么是UAUser-Agent识别系统)(1)

通常网站会通过 UA(User-Agent)来给不同的操作系统、不同的浏览器发送不同的页面,识别这些内容就需要UA识别系统来进行。

UA字串的标准格式:浏览器标识(包括:操作系统标识;加密等级标识;浏览器语言)渲染引擎标识 版本信息

ua目标是什么(什么是UAUser-Agent识别系统)(2)

API接口:根据用户user-agent信息识别操作系统、浏览器信息、浏览器内核、硬件信息及相关型号,识别率达90%以上

后附:user-agent(UA)识别Api接口代码:

Api文档:

子接口:

接口地址: https://登录后显示/njs/167/319(支持:http/https)

返回格式:JSON,xml

请求方式:GET,POST

POST 请求需要设置Header头:Content-Type: application/x-www-form-urlencoded;charset=utf-8

请求说明:

ua目标是什么(什么是UAUser-Agent识别系统)(3)

Md5验证方式-加密顺序:

ua目标是什么(什么是UAUser-Agent识别系统)(4)

返回参数说明:

名称

必填

类型

说明

示例 参数另存

alias

String

7

browser

Array

camouflage

Boolean

channel

String

Nightly

codeid

Integer

状态码,返回10000状态都会进行计费。具体说明可查看状态码说明

10000

curtime

String

当前服务器时间戳

1633915763

detectCamouflage

Boolean

1

device

Array

engine

Array

features

Array

hidden

Boolean

identified

Boolean

message

String

请求状态说明

返回成功

name

String

姓名

Windows

options

Array

original

String

6.1

os

Array

retdata

Array

回数据集合,可能是数据、对象或者字符串

stock

Boolean

type

String

desktop

useFeatures

Boolean

version

Array

JSON返回示例:

ua目标是什么(什么是UAUser-Agent识别系统)(5)

状态码说明:

状态码

说明

10000

返回成功

10001

appid必须指定,可以我的应用里面查看

10002

sign值必须指定,加密规则请前往帮助中心查看

10003

sign值验证不通过,加密规则请前往帮助中心查看

10004

时差不能超过10分钟,可以不传递这个参数,注意时间戳单位是秒

10005

appid错误,请检查appid值,前往会员中心->我的应用查看或添加

10006

当前IP地址未授权,请前往用户中心->我的应用添加ip{@info}

10007

应用被禁用,请联系客服处理

10008

应用内没有该接口,请到我的应用里面添加这个接口

10009

api接口不存在

10010

您没有添加该api接口

10011

api已经到期

10012

没有订购任何api,请前往购买后再操作

10013

该接口已经暂停使用

10014

未知的错误,可以联系客服处理

10015

参数个数错误

10019

{@info}

10017

time必须是整型

10018

次数不足

10020

子接口不存在,可能已经被关闭

10021

服务器发生错误

10022

帐户余额不足,请充值!

10023

订单提交成功,等待回调结果

10024

调试模式数据

10025

查无数据

请求示例:

ua目标是什么(什么是UAUser-Agent识别系统)(6)

ua目标是什么(什么是UAUser-Agent识别系统)(7)

以下内容转载自:http://madong.net.cn/index.php/2016/05/557/(这个文章对UA系统的以生动的故事方式写得非常明白、透澈,借来说明一下枯燥的代码用途。)

很久很久以前有一个浏览器名字叫 NCSA Mosaic

很久很久以前有一个浏览器名字叫 NCSA Mosaic

紧接着也出现了一个 Mozilla 的浏览器 (Mozilla 的意思是 Mosaic 终结者)后来 Mozilla 的正式发布版本是 Netscape 它把自己标称为Mozilla/1.0 (Win3.1)由于 Netscape支持框架显示,后来框架在大家中间流行起来了,但Mosaic不支持框架。所以网站管理员们则通过 User-Agent 判断,如果是Netscape浏览器则进入框架(html frame)的页面,如果不是Netscape 浏览器则进入没有框架的页面.

Netscape 没有风光多久,微软也推出了自己的 ie浏览器 。IE浏览器也支持 框架 但是很遗憾,网站管理员们不认识它呀,因为IE的 User-Agent 没有Mozilla 所有没有人理它。后来微软抓狂了,你们不就是只认识User-Agent 头里有 Mozilla 字符的浏览器么,于是宣称自己是“兼容Mozilla”的,开始模仿Netscape,把自己标称为Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)。这样一来 IE 也有了Mozilla (其实是伪装的…) 所以那些框架也能看到了.

后来随着微软把浏览器捆绑进自己的操作系统里一起卖,随就爆发了浏览器大战。结果大家都很清楚,Netscape失败了。而微软大胜了,至今微软的IE依然影响着 w3c 影响着所有浏览器。

Netscape 失败后重生为Mozilla 构造了Gecko,标称其为Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826,Gecko属于渲染引擎,表现优异。Mozilla开发了Firefox,标称为Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0,并且Firefox表现也非常优秀.

由于 Gecko 的优秀,网站管理员们会判断浏览器是否是 Gecko 的,如果是则把更先进 更漂亮页面显示给这个浏览器,其他浏览器就没有这个待遇了。

(比如现在的HTML5 , 如果我判断是你firefox的新版本则跳转到地址1,如果是ie则去地址2)

看到 Gecko 能看到这么漂亮的页面 Linux 的平台的孩子们很桑心,因为他们创建了基于KHTML引擎支持的Konqueror也跟 Gecko 一样优秀,但却不带有Gecko而被识别。结果Konquerer开始伪装自己“像Gecko”那样以看到更漂亮的网页,并标称自己为 Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD)(KHTML, like Gecko),这个世界就抽风了….

Apple开发了Safari,使用了KHTML,同时也增加了很多新特性,后来另起炉灶叫了webKit,但是它有希望能够看到那些为KHTML编写的网页,于是Safari标称自己为Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5,就更加混乱了.

Google也开发了自己的浏览器Chrome,使用了Webkit,有点像Safari,希望能看到为Safari编写的网页,于是决定装成Safari。Chrome使用了WebKit渲染引擎,想装成Safari,Chrome宣称自己是Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko)Chrome/0.2.149.27 Safari/525.13

最后:

IE伪装成 MozillawebKit 伪装成 KHTMLKHTML 伪装成 Gecko

最后 opera 伪装成上面任何浏览器

同时所有的浏览器又都宣称自己是 Mozilla

,