HTTP_USER_AGENT如何工作?

时间:2012-11-06 13:58:39

标签: php browser user-agent

  

可能重复:
  Why navigator.appCodeName returning Mozilla?

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

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

我在谷歌Chrome中得到这个:

  

Mozilla / 5.0(Windows NT 6.1)AppleWebKit / 537.4(KHTML,与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时会使用firefox?

2 个答案:

答案 0 :(得分:27)

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

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

答案 1 :(得分:13)

http://www.useragentstring.com/

访问该页面,它会为您提供有关用户代理的每个元素的详细说明。

的Mozilla:

  

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