【问题标题】:How does HTTP_USER_AGENT function? [duplicate]HTTP_USER_AGENT 如何运作? [复制]
【发布时间】:2012-10-26 11:58:03
【问题描述】:

当我使用此代码获取 PHP 服务器变量 HTTP_USER_AGENT 时:

<?php
   $useragent = $_SERVER ['HTTP_USER_AGENT'];
   echo "<b>Your User Agent is</b>: " . $useragent;
?>

我在谷歌浏览器中得到了这个:

Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4

这在 Firefox 中:

Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0

这在 IE 中:

Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;Trident/5.0;BOIE9;NLNL)

我的明显问题是:这是如何工作的?为什么我的用户代理在我使用 Google Chrome 时显示 Mozilla 和 Windows NT?

还有,为什么我用IE的时候却说我用的是火狐?

【问题讨论】:

    标签: php browser user-agent


    【解决方案1】:

    用户代理字符串是浏览器自己发送给网络服务器以标识自己的文本,以便网站可以根据浏览器或根据浏览器兼容性发送不同的内容。

    Mozilla 是一种浏览器渲染引擎(Firefox 的核心引擎),Chrome 和 IE 包含字符串 Mozilla/4 或 /5 的事实表明它们与该渲染引擎兼容。

    【讨论】:

    • 用户是否可以完全隐藏他们的 UA 字符串?我最近建立了一个网站来收集访问者的 UAS,但似乎很多访问我网站的机器人活动不使用 UAS?
    • 是的,很有可能。它只是浏览器可选地发送到服务器的字符串。 Firefox 可以让您完全通过 about:config 页面更改字符串,方法是使用您的新用户代理修改/创建字符串 general.useragent.override。除非您正在试验代码,否则我不明白您为什么要这样做。
    【解决方案2】:

    http://www.useragentstring.com/

    访问该页面,它会很好地解释用户代理的每个元素。

    Mozilla:

    MozillaProductSlice。声称是基于 Mozilla 的用户代理,这仅适用于 Firefox 和 Netscape 等 Gecko 浏览器。对于所有其他用户代理,它意味着“Mozilla 兼容”。在现代浏览器中,这仅用于历史原因。已经没有实际意义了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多