You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:24:51