• User Agent的学习


     

    什么是User-Agent? 

      User-Agent是一个特殊字符串头,被广泛用来标示浏览器客户端的信息,使得服务器能识别客户机使用的操作系统和版本,CPU类型,浏览器及版本,浏览器的渲染引擎,浏览器语言等。

      不同的浏览器(IE,FF,Opera, Chrome等)会用不同的用户代理字符串(User Agent Strings)作为自身的标志,当搜索引擎(Google,Yahoo,Baidu,Bing)在通过网络爬虫访问网页时,也会通过用户代理字符串来进行自身的标示,这也是为何网站统计报告能够统计浏览器信息,爬虫信息等。网站需要获取用户客户端的信息,了解网站内容在客户端的展现形式,一些网站通过判断UA来给不同的操作系统,不同的浏览器发送不同的页面,不过这也可能造成某些页面无法再某个浏览器中正常显示. 

      用户代理字符串包括6个不同个部分:

    如下:

      Mozilla/5.0(compatible;X11;U;Linux i686;en-US) Gecko/20081202 Firefox(Debian-2.0.0.19-0etch1)

    • Mozilla/5.0  浏览器标志:包括应用名Mozilla和版本号5.0;
    • compatible    浏览器兼容标志:表示支持主要功能集
    • U  加密标志:该字段逐步被取消(N表示无安全加密,I表示弱安全加密,U表示强安全加密)
    • Linux i686  操作系统标志:linux
    • en-US  语言标志:英文
    • Gecko/20081202  渲染引擎标志:Gecko
    • Firefox(Debian-2.0.0.19-0etch1)  浏览器版本信息:firefox

    为什么浏览器User-agent总是有Mozilla字样?

    User-agent String里的历史故事:http://nonfu.me/p/8262.html#6704859-tsina-1-74270-c5f225ba0edaae7b53a5eca6ead5f75f

    User-Agent的简单用法:
    • 当用户使用FF访问一个网站时,网站通过用户代理字符串获取该用户的浏览器版本,当发现该版本的FF无法完美展现网站内容时,就提出个性化的提示,升级浏览器来展现最新的WebGL 和HTML5内容
    • 网站可以根据用户代理字符串给出不同的css文件,保证在不同的浏览器上都展示出最好的效果。
    • 伪装 user agent 来回避某些侦测特定浏览器才能读取的网站。

     以上转自:http://www.360doc.com/content/14/0218/02/15723785_353395087.shtml

    获取User-agent值:

      在JAVA中使用 request.getHeader("User-Agent")得到浏览器的User-Agent

      PHP中用$_SERVER[HTTP_USER-AGENT]获得

      JS中用navigator.userAgent获得。

          在 ASP.NET 中使用 Request.Header["User-Agent"] 得到。

    修改常见浏览器UA的方法:http://www.zhixing123.cn/jiaocheng/40469.html

    Chrome伪装UA的方法绕过检测。具体方法:http://blog.csdn.net/iceman03/article/details/20528771

    其他扩展阅读:

      User-agent 字串史: http://www.kuqin.com/shuoit/20150312/345160.html, 

                    http://www.cnblogs.com/egger/archive/2013/04/20/3032070.html

      各大搜索引擎的User-Agent: http://www.cnblogs.com/iack/p/3557371.html

      手机浏览器的User-agent:http://blogread.cn/it/article/4063?f=wb 

      各大浏览器各版本User-agent汇总:http://weibo.com/p/230418ac467e560102vebj

    注:本文中很多内容已经有网友做过总结,在学习UA的过程中,搜集下来的一些比较好的,也不复制粘贴了,相关链接可以参考。(我是勤劳的搬运工~^~)

  • 相关阅读:
    斐波纳契数列
    实现刮刮乐的效果
    简易版美图秀秀
    js 宏任务和微任务
    作业3 阅读
    作业2 结对子作业
    做汉堡
    练习一
    Java设计模式十八:代理模式(Proxy)
    Java设计模式二十:适配器模式(Adapter)
  • 原文地址:https://www.cnblogs.com/guihailiuli/p/4433520.html
Copyright © 2020-2023  润新知