浏览器的userAgent
userAgent再熟悉不过了,但具体怎么用,能做到和做不到哪些呢,这里Mark下。
访问方式
前端网页的话,可以使用
alert(window.navigator.userAgent);
服务端的话,可以使用
req.heades[user-agent]
推荐工具包
userAgent是个字符串,从中解析出浏览器版本,操作系统等信息的话,需要使用正则。这里推荐个常用包
1 | let parser = new UAParser("your user-agent here"); // you need to pass the user-agent for nodejs |
如上即可获得结构化的信息,注意nodejs下的话需要显式传入ua,而浏览器端使用的话则不需要传入参数。
userAgent中不包含的信息
虽然利用UAParser可以方便的使用结构化处理后的ua信息,但受限于ua信息本身情况,因此我们也只能获取部分有价值的信息。
userAgent中可以获得
浏览器名称
,浏览器版本
,设备类型
,CPU,OS版本等信息。但不包括设备硬件细节,比如内存大小userAgent中携带的
OS版本并不一定正确
,比如我现在在一台MacOS Sonoma 14.0下测试,发现UA中携带的OS版本是10.15.7
userAgent中有多个浏览器信息?
以如下的2个例子来说明
开头Mozilla可以理解为固定前缀,不用管,AppleWebKit为当前浏览器中使用的渲染引擎,接下来的是真正的浏览器及版本,第一个chrome之后有Safari说明Chrome兼容了如下的Safari。
1 |
|