Safari的用户代理:信任哪个WebKit版本?

11

我正在尝试从常见的用户代理字符串中提取浏览器及其版本号,以及渲染引擎及其版本号。大多数浏览器都能很好地报告这些信息,例如:

  • "Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.0;Trident/4.0)"

  • "Mozilla/5.0(Windows;U;Windows NT 6.0;en-US;rv:1.9.0.12Gecko/2009070611 Firefox/3.5.12"

Safari也会报告WebKit版本号,但似乎会重复两次。以下是我的UA:

  • "Mozilla/5.0(Windows;U;Windows NT 6.1;en-US)AppleWebKit/531.9(KHTML,像Gecko一样)Version/4.0.3 Safari/531.9.1"

在这种情况下,似乎其中一个比另一个更详细。

但是当我查看Safari UA字符串的数据库时,例如useragentstring.com,这两个版本经常完全不同。

  • "Mozilla / 5.0(Windows;U;Windows NT 6.1;en-US)AppleWebKit/532+(KHTML,像Gecko一样)Version/4.0.2 Safari/530.19.1"

  • "Mozilla/5.0(Windows;U;Windows NT 5.1;cs-CZ)AppleWebKit/525.28.3(KHTML,像Gecko一样)Version/3.2.3 Safari/525.29"

  • "Mozilla/5.0(Windows;U;Windows NT 5.1;en-US)AppleWebKit/530.19.2(KHTML,like Gecko)Version/4.0.2 Safari/530.19.1"

  • "Mozilla/5.0(Macintosh;U;Intel Mac OS X 10_5_4;en-us)AppleWebKit/528.4+(KHTML,like Gecko)Version/4.0dp1 Safari/526.11.2"

  • 我该使用哪一个?这不是一个重要的问题,只是想知道。谢谢!


    更糟糕的是,它在设计上就不可信,所以无法确定其准确性(请参阅此处此处)。 - undefined
    1个回答

    15

    AppleWebKit/xxx 部分告诉您正在使用哪个渲染引擎。 Version/xxx Safari/xxx 部分告诉您正在使用哪个“浏览器前端”版本。

    Webkit 每夜构建版 运行当前安装的 Safari 前端,最新每夜构建的渲染引擎进行渲染。这就是为什么您可以在相同的 Version/xxx Safari/xxx 下获得不同的 AppleWebKit/xxx 数字。


    JavaScript的功能(例如XMLHttpRequest行为)依赖于渲染引擎还是“浏览器前端”?我认为这是渲染引擎的一部分(因此是WebKit)。 - Jaka Jančar
    xxx部分如何对应Safari版本?或者对应任何其他东西? - jayarjo

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接