UserAgent中文意思为用户代理,是Http协议中请求头的一部分,User Agent也简称UA。它是一个特殊字符串,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通过这个标识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计;比如通过浏览器UserAgent头来判断是手机还是pc,从而显示对应的适配版本,提升用户体验。
浏览器的UA字串的标准格式:浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识版本信息。但各个浏览器有所不同。另外各个浏览器APP,以及各大APP内置浏览器webview都会在ua字串中添加自己的标识,比如头条APP的内置浏览器是ttwebview,微信内置浏览器是MicroMessenger,百度APP内置浏览器是baiduboxapp。此外各手机厂商也有自己的单独名称,比如vivo手机浏览器的是VivoBrowser。通过这些信息可以得知用户使用的APP以及手机型号等。
以访问www.99xq.cn首页为例分析下request headers请求头的内容:
:authority: www.99xq.cn
:method: GET
:path: /
:scheme: https
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding: gzip, deflate, br
accept-language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7,ko;q=0.6
cache-control: no-cache
cookie: www.99xq.cn
pragma: no-cache
sec-ch-ua: "Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
sec-fetch-dest: document
sec-fetch-mode: navigate
sec-fetch-site: none
sec-fetch-user: ?1
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36
从以上的请求头信息可以看到,当浏览器访问服务器的时候,会带上user-agent信息,标识系统版本,浏览器版本等内容。
php获取浏览器ua标识的方法
<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
一些常见的浏览器ua头标识
头条内置浏览器: Mozilla/5.0 (Linux; Android 7.1.1; 9E(X9) Build/N6F26Q; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3770.156 Mobile Safari/537.36 TTWebView/0751130013016
微信内置浏览器:
Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11B554a MicroMessenger/6.2.1
Mozilla/5.0 (Linux; Android 11; M2102K1C Build/RKQ1.201112.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2899 MMWEBSDK/20210902 Mobile Safari/537.36 MMWEBID/1488 MicroMessenger/8.0.14.2000(0x28000E37) Process/toolsmp WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64
(上面两个都是微信内置浏览器的ua,前一个是老版本的,后面一个是最新版本的,可以看出一些变化,但 MicroMessenger 是一直未变的)
百度APP内置webview: Mozilla/5.0 (Linux; Android 11; PCLM10 Build/RKQ1.200928.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/12.22 SP-engine/2.29.0 matrixstyle/0 lite baiduboxapp/5.16.0.11 (Baidu; P1 11) NABar/1.0
uc浏览器: Mozilla/5.0 (Linux; U; Android 7.1.2; zh-CN; M6 Note Build/N2G47H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 UCBrowser/13.5.9.1139 Mobile Safari/537.36
ios内置Safari浏览器: Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Mobile/15E148 Safari/604.1
vivo浏览器: Mozilla/5.0 (Linux; Android 11; V2048A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/87.0.4280.141 Mobile Safari/537.36 VivoBrowser/10.2.10.0
小米内置浏览器: Mozilla/5.0 (Linux; U; Android 11; zh-cn; M2102K1C Build/RKQ1.201112.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.116 Mobile Safari/537.36 XiaoMi/MiuiBrowser/15.3.16
更多设备/浏览器/蜘蛛的useragent头信息可参考: https://www.99xq.cn/open-source/153.html