天气是越来越冷了,大家一定要记得穿秋裤啊。上周极小验和大家聊了一些关于cookie的知识,今天就给大家介绍一下User Agent。
什么是UA
User Agent 我们简称UA,顾名思义是指用户代理,是代表用户行为的软件所提供的一个标识自己身份的标识符,包含了用户正在使用的设备以及软件的一些数据信息(例如操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等)。基于用户代理的访问,网站才能够针对不同的用户,进行个性化的定制,开发出更丰富的动态网站,带给用户更好的体验。同时UA在控制搜索引擎爬虫爬取网站服务器资源也有着关键作用。但是事物总有好坏两面,UA的缺陷就是其信息可以被伪造。
User Agent 的类型
浏览器是用户代理最直接的应用案例,但是其他工具同样可以作为代理。事实上,并不是所有的用户代理都是人类在掌控。搜索引擎爬虫就是一个很好的例子,这个用户代理实际上是一个机器程序在操作。
下面是一些用户代理列表
浏览器:IE浏览器,火狐浏览器,Safari,google浏览器,百度浏览器,搜狗浏览器等。
爬虫:谷歌搜索,百度蜘蛛,雅虎等等。
控制台:PS3,Wii,PSP和任天堂DS bunjalloo——“内置的浏览器。
离线浏览器(例如wget和离线浏览器)。
链接检查(例如,W3C checklink)。
加上一系列的阅读器、验证器、云平台、媒体播放器、电子邮件库和脚本。
User Agent 字符串是什么样子的呢?
用户代理需要通过服务器的确认之后,才能够进行内容交换。网站可以通过用户代理字符串来确定应该向用户提供哪个版本的服务。就相当于,用户代理软件提交给服务器一个标识自己身份的证件,服务器识别身份后来协商提供给用户恰当的文件,脚本,以及媒体。在网络应用的早期,用户代理标识是用来区分Mosaic和Mozilla(这是两款比较早期的浏览器,这是一个很长的故事,感兴趣可以自己去看看咯),因为Mosaic不支持框架,Mozilla可以。
用户代理字符串是唯一对应一个用户的,我们可以通过下面的例子详细了解一下。
该用户代理应用是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是一个很简单的方法,帮助我们网站和用户建立良好服务关系。
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/