UserAgent的使用方法

举报
多米诺的古牌 发表于 2022/08/14 18:23:28 2022/08/14
【摘要】   User Agent即用户代理,简称为UA,是一种特殊的字符串头,会使得服务器能够识别客户使用的操作系统、版本、CPU 类型、浏览器版本、浏览器渲染引擎、浏览器语言、浏览器插件等等,是不感觉很厉害的样子,通过这个串头,我们就可以进行获得很多的信息,从而进行相关业务的处理。

1、UserAgent的简介

      User Agent即用户代理,简称为UA,是一种特殊的字符串头,会使得服务器能够识别客户使用的操作系统、版本、CPU 类型、浏览器版本、浏览器渲染引擎、浏览器语言、浏览器插件等等,是不感觉很厉害的样子,通过这个串头,我们就可以进行获得很多的信息,从而进行相关业务的处理。

      在server抓包的时候,会经常碰到直接使用wget或者curl被服务器拒绝的状况,这时候只需要通过增加一个user-agent串头进行模拟就可以通过了。

2、查看User Agent的方法

2.1 通过js获取

      在浏览器地址栏中输入以下代码

navigator.userAgent

      或者

window.navigator.userAgent

      进行获取相关信息,获取后的信息会是这个样子的:'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/xxx (KHTML, like Gecko) Chrome/xxx Safari/xxx'

2.2 通过Chrome开发者模式获取

      打开chrome开发者模式(快捷键是F12),或者在网页上右键选择检查(快捷键是Ctrl+Shift+I),在Network栏中找到需要查询的请求,在Headers的最后可以看到User-Agent的相关信息了。这种方法可以通过模拟机型,在选择模拟的设备机型后,找到相应的请求就可以找到这类机型所对应的User-Agent信息了。

3、User-Agent的应用

3.1 User-Agent在js中的应用

      其中判断是否是微信环境,通常我们会通过window.navigator.userAgent获取User-Agent串头后进行转小写,然后通过正则匹配/MicroMessenger/i是否为'micromessenger'来判断是否是微信内部浏览器从而判断是否是微信环境,这里如果不加window的话Android机可能会判断不了是否是微信,所以还是加上比较保险。

function isWX() {
    var ua = window.navigator.userAgent.toLowerCase();
    if (ua.match(/MicroMessenger/i) == 'micromessenger') {
        return true;
    } else {
        return false;
    }
}

 3.2 User-Agent在java中的应用

       通常我们会通过reques请求中获取header中的user-Agent元素,然后进行转小写,在获取到信息之后,我们就可以通过这个User-Agent串头信息来进行环境判断了,其中包含micromessenger则为微信内部浏览器标识,即微信内部环境,在微信内部环境又包括小程序和企微,我们通过判断User-Agent串头信息是否包含wxwork元素来判断是否为企微环境,通过判断User-Agent串头信息是否包含miniprogram来判断是否为小程序环境下。

String userAgent = request.getHeader("user-agent").toLowerCase();
if (userAgent.indexOf("micromessenger") < 0) {// 非微信
	return true;
} else{
	if (userAgent.indexOf("wxwork") > 0) { // 企业微信客户端
		return true;
	}else if(userAgent.indexOf("miniprogram") > 0){//小程序下
		return true;
	}
}

以上就是User-Agent的相关应用和总结。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。