【问题标题】:Unable to get `User-Agent` properly from header无法从标头正确获取“用户代理”
【发布时间】:2015-07-19 01:14:17
【问题描述】:

`嗨,

我试图在我的 servlet 过滤器中获取用户的浏览器信息。我使用了一个简单的代码,见下文。

String userAgent = request.getHeader("User-Agent");

用户使用的是谷歌浏览器,上面打印的代码如下。

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36

它会打印所有主要浏览器的名称,而不是在应用程序运行后获取。这里有什么问题?

【问题讨论】:

标签: java http servlets httprequest servlet-filters


【解决方案1】:

这里没有错。

例如让我们考虑返回的字符串是

Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36

那么解释就是

ChromeChrome 41.0.2228.0

Mozilla ==> 

MozillaProductSlice. Claims to be a Mozilla based user agent, which is only true for Gecko browsers like Firefox and Netscape. For all other user agents it means 'Mozilla-compatible'. In modern browsers, this is only used for historical reasons. It has no real meaning anymore

5.0 ==> Mozilla version

Windows NT 6.1  ==> Operating System Windows 7 

AppleWebKit  ==> The Web Kit provides a set of core classes to display web content in windows

537.36       ==> Web Kit build
KHTML        ==> Open Source HTML layout engine developed by the KDE project
like Gecko   ==> like Gecko...
Chrome  Name ==> Chrome
41.0.2228.0  ==> Chrome version
Safari       ==> Based on Safari
537.36       ==> Safari build

Description:    Free open-source web browser developed by Google. 
Chromium is the name of the open source project behind Google Chrome, released under the BSD license.

您可以在下面的链接中找到更多信息

http://www.useragentstring.com/pages/Chrome/

点击页面上的每个链接以获取更多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 2020-11-18
    • 2015-09-25
    • 1970-01-01
    • 2022-01-06
    • 2019-09-29
    • 2016-12-23
    相关资源
    最近更新 更多