如何在Node后端解析客户端的操作系统及版本信息?
可以解析请求头获取客户端操作系统及版本信息
当然可以解析这些信息。你提到的请求头里的Sec-CH-UA-Platform、Sec-CH-UA-Platform-Version等属于**客户端提示(Client Hints)**字段,是现代浏览器(包括移动应用内置WebView)专门用来替代传统User-Agent、提供精准客户端环境信息的标准请求头。
具体解析逻辑:
Sec-CH-UA-Platform:直接返回操作系统名称,比如"Android"或"iOS"Sec-CH-UA-Platform-Version:返回对应操作系统的版本号,比如"13"、"16.5"- 额外的
Sec-CH-UA-Mobile字段可辅助判断是否为移动设备,值为?1代表移动设备,?0则不是
后端代码示例(两种常见技术栈):
Java Spring Boot:
@GetMapping("/device-os-info") public Map<String, String> getDeviceOsInfo( @RequestHeader("Sec-CH-UA-Platform") String osName, @RequestHeader("Sec-CH-UA-Platform-Version") String osVersion ) { Map<String, String> osInfo = new HashMap<>(); osInfo.put("operating_system", osName); osInfo.put("os_version", osVersion); return osInfo; }
Node.js Express:
app.get('/device-os-info', (req, res) => { const osName = req.headers['sec-ch-ua-platform']; const osVersion = req.headers['sec-ch-ua-platform-version']; res.send({ operating_system: osName, os_version: osVersion }); });
注意事项:
- 这些客户端提示头需要客户端环境支持,主流移动设备的WebView(如Android System WebView、iOS WKWebView)均已支持;如果是自定义封装的WebView,需确保开启了客户端提示的相关配置。
- 若存在极旧设备不支持该字段的情况,可考虑降级兼容(比如 fallback 到解析User-Agent的逻辑),但目前移动生态中这种场景占比极低。
内容的提问来源于stack exchange,提问作者mohit baraiya
相关产品推荐
相关产品推荐

