网站如何识别网络浏览器?

时间:2012-06-29 15:42:17

标签: web browser

有些网站在通过智能手机或电脑访问时会自行排列布局。我想知道它是如何完成的(Javascript?获取浏览器数据?)。我真的很感激一些帮助,我正在学习JAVA,谢谢。

4 个答案:

答案 0 :(得分:0)

Web浏览器的每个请求都有agent-string,其中包含必要的信息。请查看此页面以获取代理字符串的说明。 http://en.wikipedia.org/wiki/User_agent

答案 1 :(得分:0)

浏览器会向每个GET请求发送一个标头,其中包含有关自身的各种信息。有关示例,请参阅here,但您正在讨论的特定信息(浏览器类型)将在User-Agent字段中发送。使用一些http客户端库,您可以控制发送的一些字段,以便假定其他类型的客户端的身份。

答案 2 :(得分:0)

这是通过阅读用户代理来完成的,通常使用javascript(在网站上)。

Javascript示例here

答案 3 :(得分:0)

网站通过用户代理字符串识别浏览器。这是一个唯一标识符,用于告知站点浏览器类型和版本。

这可以通过navigator.userAgent在javascript中检测到 它还作为标题字段

发送到Get Request中的服务器

示例:

  

User-Agent:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 536.5(KHTML,与Gecko一样)Chrome / 19.0.1084.56 Safari / 536.5

获取此功能的 Java Servlet代码将是(More Info Here):

public final void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
  String agent = req.getHeader("user-agent");
  if (agent != null && agent.indexOf("MSIE") > -1) {
    // Internet Explorer mode
  } else {
    // Non-Internet Explorer mode
  }
}

强制性维基百科参考:

http://en.wikipedia.org/wiki/User_agent

  

用户代理字符串格式当前由第14.43节指定   RFC 2616(HTTP / 1.1)HTTP中User-Agent字符串的格式是   带有可选注释的产品令牌(关键字)列表。对于   例如,您的产品名为WikiBrowser,即您的用户代理   字符串可能是WikiBrowser / 1.0 Gecko / 1.0。 “最重要的”   产品组件首先列出。这个字符串的部分是   如下:

     

产品名称和版本(WikiBrowser / 1.0)布局引擎和   版本(壁虎/ 1.0)。在这种情况下,这表示布局引擎和   版。不幸的是,在浏览器大战期间,许多网络服务器都是   配置为仅发送需要高级功能的网页   被识别为某个版本的Mozilla的客户端。

     

因此,大多数Web浏览器使用User-Agent值,如下所示:   Mozilla / [版本]([系统和浏览器信息])[平台]   ([平台详情])[扩展]。例如,iPad上的Safari有   使用以下内容:

     

Mozilla / 5.0(iPad; U; CPU OS 3_2_1,如Mac OS X; en-us)   AppleWebKit / 531.21.10(KHTML,像Gecko)Mobile / 7B405组件   这个字符串如下:

     

Mozilla / 5.0:以前用于表示与...的兼容性   Mozilla渲染引擎(iPad; U; CPU OS 3_2_1,如Mac OS X; en-us):   运行浏览器的系统的详细信息   AppleWebKit / 531.21.10:浏览器使用的平台(KHTML,如   Gecko):浏览器平台详情Mobile / 7B405:这是由   浏览器指示可直接使用的特定增强功能   在浏览器中或通过第三方。这方面的一个例子是   Microsoft Live Meeting注册扩展以便Live   会议服务知道软件是否已安装,哪个   意味着它可以为参加会议提供简化的体验。