User Agent 用户代理
User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
User Agent的含义
一些网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正常显示,但通过伪装 UA 可以绕过检测。
浏览器的 UA 字串
标准格式为: 浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识 版本信息
浏览器标识
由于很多网站在进行 UA 检测的时候忽略了两位数版本号,所以可能造成 浏览器及之后版本收到糟糕的页面,因此自 浏览器 10 之后的版本中浏览器标识项固定为 浏览器,在 UA 字串尾部添加真实版本信息。
java中的UserAgent
来自UserAgentUtils-1.19.jar 下载地址:http://download.csdn.net/download/xc_oo0/10208840
user-agent-utils 是一个用来解析 User-Agent 字符串的 Java 类库。 能识别的内容包括: 常见操作系统 常见 Web 浏览器 很多移动设别 一些平板设别 一些 Email 客户端 类似于Gmail和Hotmail的客户端
示例代码:
String showData = ""; String userAgent = request.getHeader("User-Agent"); UserAgent ua = new UserAgent(userAgent); // 浏览器 Browser browser = ua.getBrowser(); String browserName = browser.name(); // 浏览器名称 BrowserType browserType = browser.getBrowserType(); // 浏览器类型 Version browserVersion = ua.getBrowserVersion(); // 浏览器版本 // 操作系统 OperatingSystem operatingSystem = ua.getOperatingSystem(); Class<OperatingSystem> declaringClass = operatingSystem.getDeclaringClass(); // 声明类 DeviceType deviceType = operatingSystem.getDeviceType(); // 设备的类型 String deviceTypeName = deviceType.getName(); // 设备名称 OperatingSystem group = operatingSystem.getGroup(); String groupName = group.getName(); Manufacturer manufacturer = operatingSystem.getManufacturer(); String manufacturerName = manufacturer.getName(); // 制造商名称 String operatingSystemName = operatingSystem.getName(); // 操作系统名称 showData += "浏览器名称:" + browserName + "浏览器类型:" + browserType + "浏览器版本:" + browserVersion + "设备名称:" + deviceTypeName + "制造商名称:" + manufacturerName + "操作系统名称:" + operatingSystemName; System.out.println(showData);
参考:https://baike.baidu.com/item/%E7%94%A8%E6%88%B7%E4%BB%A3%E7%90%86/1471005?fromtitle=useragent&fromid=5534048&fr=aladdin
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2017-01-16 js取整数、取余数的方法
2017-01-16 js jqery判断checkbox是否选中,全选,取消全选,反选,选择奇数偶数项