谈谈检测浏览器类型

前几天被问到如何检测浏览器类型,我突然发现我对此并不了解,之前的项目中也没有使用到过,只隐约记得通过一个自带的方法即可获取。所以今天特意来仔细补习一下。

核心:navigator.userAgent

1.正则表达式

2.引用外部库

3.判断浏览器的其他特性

一.首先讲一下navigator.userAgent

navigator.userAgent 是一个包含用户代理字符串(User Agent String)的属性,这个字符串提供了关于用户浏览器操作系统设备的信息。用户代理字符串的生成和传递涉及浏览器和服务器之间的通信过程。

用户代理字符串包含主要内容:

-用户浏览器

-操作系统

-设备信息

接下来从构成、生成原理、传递解析和局限性几个方面来讲解一下用户代理字符串:

1.1用户代理字符串的构成

  1. 浏览器名称和版本:标识浏览器的名称和版本号。【这个内容导致经常用于判断浏览器类型场景上!】
  2. 操作系统:标识用户使用的操作系统及其版本。
  3. 渲染引擎:标识浏览器使用的渲染引擎。
  4. 设备信息:标识设备类型(比如手机、平板、桌面)。
举个例子
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36

我们来分析一下这个例子用户代理字符串中包含了哪些信息呢

  • Mozilla/5.0:兼容性标识符,表示兼容 Mozilla 的浏览器。
  • (Windows NT 10.0; Win64; x64):操作系统信息,表示 Windows 10 64 位操作系统。
  • AppleWebKit/537.36:渲染引擎,表示使用 WebKit 内核。
  • (KHTML, like Gecko):表示兼容 Gecko 内核。
  • Chrome/92.0.4515.107:浏览器名称和版本号,表示 Chrome 92。
  • Safari/537.36:表示兼容 Safari 537.36。【这里注意,正则判断时,由于兼容性标识,也有可能chrome浏览器识别到safari字段】

1.2用户代理字符串的生成

  1. 浏览器内部生成
    • 浏览器在初始化时,根据其内置的信息和用户的操作系统,生成用户代理字符串。
    • 这些信息通常在浏览器的配置文件中定义,浏览器开发者在开发时设定。
  1. 用户定制
    • 某些浏览器允许用户通过设置或扩展自定义用户代理字符串。用户可以修改用户代理字符串以伪装成不同的浏览器或设备。【这一点导致了他的不可靠性】

1.3用户代理字符串的传递(浏览器和服务端之间)

  1. HTTP 请求
    • 当用户访问网页时,浏览器会发送 HTTP 请求到服务器。在请求头中包含一个名为
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值