天气是越来越冷了,大家一定要记得穿秋裤啊。上周极小验和大家聊了一些关于cookie的知识,今天就给大家介绍一下User Agent。
什么是UA
User Agent 我们简称UA,顾名思义是指用户代理,是代表用户行为的软件所提供的一个标识自己身份的标识符,包含了用户正在使用的设备以及软件的一些数据信息(例如操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等)。基于用户代理的访问,网站才能够针对不同的用户,进行个性化的定制,开发出更丰富的动态网站,带给用户更好的体验。同时UA在控制搜索引擎爬虫爬取网站服务器资源也有着关键作用。但是事物总有好坏两面,UA的缺陷就是其信息可以被伪造。
User Agent 的类型
浏览器是用户代理最直接的应用案例,但是其他工具同样可以作为代理。事实上,并不是所有的用户代理都是人类在掌控。搜索引擎爬虫就是一个很好的例子,这个用户代理实际上是一个机器程序在操作。
该用户代理应用是Mozilla的5版,或一类和它兼容的软件。
操作系统是OS X版本10.2.2(是在Mac上运行)。
客户端是Chrome版本51.0.2704.84。
客户端基于Safari版本537.36。
负责该设备上的显示内容引擎applewebkit版本537.36。
解析用户代理字符串有些棘手,因为没有标准格式。但是指南和分析工具可以帮助我们。对于大多数设计人员来说,应用程序、版本和引擎的信息都很关键。
User Agent的作用
虽然说用户代理字符串有一点混乱,但是它仍然是很有用的,我们可以通过它做哪些事情呢?
-
检查浏览器或设备的功能,并加载不同的CSS的结果;
-
比较不同的设备,提供自定义的JavaScript;
-
通过辨别用户代理,服务器提供手机端和PC端不同的网页页面布局;
-
基于用户代理语言的偏好,自动发送正确的翻译文档;
-
根据设备类型或者一些其他因素,为特殊人群提供个性化服务;
-
收集并统计相关访问者的信息,可以指导网站的内容和设计的改进,或者了解用户的偏好,再或者了解网站流量的来源,做一些相应的优化;
总之就是,网站可以根据用户代理为网站用户提供更加优质的服务。
用户代理欺骗
使用用户代理字符串来控制网站行为并不是一个一劳永逸的办法,因为用户代理完全是可以伪装的。发送一个伪装的UA可能是为了进行适用性测试,但也有可能是操控内容或者恶意程序模拟一个正常的设备。
从积极的一面来说,浏览器可以伪装自己为其他的浏览器来提高兼容性,或者更好的进行开发。在安卓的设备上,浏览器会伪装成Safari来避免加载内容的时候出现问题,海豚浏览器就有一个很有用的桌面伪装模式。
从消极的一面来说,这种伪装也可以被恶意利用。比如说一个恶意爬虫可以伪装成为一个普通的浏览器,爬取网站的资源。又或者一个机器程序通过伪装不同的用户代理,绕过robot.txt的限制,变相的重复访问。
极小验说了这么多,相信大家对UA已经有了比较深入的了解,UA并不是一个万无一失的检测真实用户的方法,它可以被用户关闭也可以被伪装。但是在绝大多数情况下,UA是一个很简单的方法,帮助我们网站和用户建立良好服务关系。
,