UserAgent中文名为用户代理,是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等的一个标识。

那关于UserAgent的诞生其实还是有一段比较有趣的故事的。

1955年6月8日,伯纳斯·李(Tim Berners-Lee)出生于英格兰伦敦西南部。他的父母都参与了世界上第一台商业电脑,曼切斯特1型的建造。1976年从牛津大学物理系获得一级荣誉学位,毕业之后,就职于英国一些高技术公司。1984年,一个偶然的机会,来到瑞士的日内瓦,进入著名的由欧洲原子核研究会(CERN)建立的粒子实验室。

起初计算机只是以单机模式被广泛应用,1977到1979年间推出目前形式的TCP/IP体系结构和协议规范,1987年,尼尔森出版了《文字机器》,计划是做一个进行在线超文本出版和商务的全球系统;而后1989年,Internet上的主机数量突破了100000台。

1989年,欧洲粒子物理实验室(CERN)当时连因特网已有两年时间了,伯纳斯·李建议采用超文本技术(Hypertext)把CERN内部的各个实验室连接起来,在系统建成后,将可能扩展到全世界。后来总算得到了批准,并得到了一笔经费,购买了一台NEXT计算机;

1989年仲夏之夜,伯纳斯·李成功开发出世界上第一个Web服务器和第一个Web客户机。虽然这个Web服务器简陋得只能说是CERN的电话号码簿,它只是允许用户进入主机以查询每个研究人员的电话号码,但它实实在在是一个所见即所得的超文本浏览;

1989年12月,他的发明正式定名为World Wide Web,即我们熟悉的WWW(是基于客户机/服务器方式的信息发现技术和超文本技术的综合);这位老兄顺便也做出了史上第一个浏览器,也叫WorldWideWeb,这个浏览器只能在NeXT系统上运行,NeXT软件公司的老板就是当年被苹果扫地出门的乔布斯。后来苹果将NeXT收购,乔布斯也重新掌管苹果,NeXT系统也成为了优雅的macOS的基础。但是这名字这么长,后来伯纳斯·李把WorldWideWeb更名为Nexus(连接),得益于兼容Unix和Microsoft DOS,当年它成为最流行的浏览器,不过它只支持文字展示,还不支持图片展示;

1992年,期间出现了基于Unix浏览器Erwise、以及一个纯文字的浏览器Lynx,但是视频音频功能强大;

1993年,伊利诺伊的NCSA(美国国家超级计算应用中心)组织认为没有图片的网页就像失去颜色的世界!因此他们发明了第一个可以显示图片的浏览器:Mosaic(马赛克);

此时的霸主是Nexus,它是不能显示图片的,而Mosaic能显示,这就叫html的开发陷入了两难的境地。之后Mosaic想到了一个办法:这本质上就是一个身份的问题嘛,那我就在给你发请求的时候告诉你们我的身份,和Nexus区分开来不就行了,这就是UserAgent的由来。比如Mosaic把自己标注为NCSA_Mosaic/2.0(Windows 3.1)。

但是我们看到的很多UserAgent的开头是Mozilla,是为什么呢?

别急,故事还没有结束;

1994年,在Mosaic如日中天的时候,网景公司发明了一款浏览器,希望能够取代Mosaic,他的名字就叫:Mozilla。Mozilla由“Mosaic Killa”变化而来,大致意思就是吃掉Mosaic;

碍于当时Mosaic的江湖地位,网景公司怕不得已把浏览器名字改为Netscape Navigator(网景航海家),但是仍然偷偷地在自己的UserAgent后面写上了Mozilla。以网景为首的一批互联网技术公司的崛起,迅速构成了一股隐隐的可以与微软分庭抗礼的新力量。比尔盖茨和网景谈判,希望建立合作关系,但是网景公司雄心壮志,岂会就此买账,于是谈判破裂;

1995年,为了快速抢占市场,收购了一家名为Spyglass的公司,这家公司已经从NCSA处买了Mosaic的授权。可以基于此直接开始开发,于是迅速发布了IE 1.0(Explorer 探索者)、IE2.0(加入了支持JavasScript功能),但是由于这两个版本还是不够完美。但是为了彻底摧毁网景,微软决定将IE免费开放,但是网景浏览器收费但是要45美元,这还不够,半年后宣布Windows95与IE捆绑销售,并且还宣布自己是兼容Mozilla的,还将自己的userAgent改成Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)。这下网景彻底绝望了;

1996年,一家挪威的公司也推出了一款浏览器,Opera(歌剧)浏览器首次亮相,它支持单窗口多文档阅读。在IE和FireFox(火狐)还在龙争虎斗的时候,市场上还存在另外一个著名的操作系统Linux,Linux看着Window的IE浏览器非常眼红,于是寻思着也开发一款基于Linux的浏览器。于是Konqueror浏览器也出现了,它可以运行在类Unix(Linux)系统上;

1997年,微软用两年时间就从IE1.0更新到了IE4.0,并率先推出了Trident内核,这种开发效率太恐怖了;

1998年,网景公司与IE浏览器竞争失利后,为了挽回市场,宣布旗下所有的软件都免费。并开放了网景通信家(Netscape Communicator 4.0)的源代码。失败后,他们围绕着浏览器排版引擎 Gecko (壁虎) 成立了非正式组织 Mozilla。同年11月,AOL(美国在线)为了防止浏览器再度被垄断,耗资42亿美元收购了网景;

2001年,8月27日微软发布IE6浏览器,IE6以垄断性的市场份额独占鳌头。 Netscape逐渐在与IE6竞争中败下阵来;

2002年,原网景公司的一批大神,开发出了Phoenix(凤凰)浏览器,有点“凤凰涅槃”之意,但是刚推出就被人告了,原来已经有一家公司叫做 “凤凰科技”;然后准备改名叫Firebird(火鸟),苍天啊,没想到又有一个开源数据库居然也叫Firebird,泪流满面的Mozilla感慨重生好难呀,最终还是叫 Firefox (火狐)吧,火狐一直备受关注。后来美国在线向微软提出索偿诉讼,微软因滥用垄断能力而败讼后;

在2003年5月,微软和AOL(美国在线)达成和解协议,愿意支付网景7.5亿美元。同年7月,AOL(美国在线)解散网景公司,并且将Netscape源码送给了开源社区,成立了Mozilla基金会(如今是Firefox浏览器的管理与推进组织);

也是在2003年,苹果发布了Safair浏览器,内核是WebKit,WebKit起初是KHTML渲染引擎的一个分支,使用在Linux系统的浏览器上,后来专注发展开源引擎,并在05年开源了Safair的内核,也就是现在占领了浏览器大半江山的Webkit内核;

2004年,Firefox 1.0发布,基于 Gecko 引擎的 Firefox 非常优秀,它标志自己的 UserAgent 为 Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0 ,Firefox 在业内广受好评,得到了快速的发展;

但是,Linux的追随者对此很难过,因为他们编写Konqueror,它的引擎是KHTML,他们认为KHTML和Gecko一样出色,于是Konqueror为得到更好的页面开始将自己伪装成“like Gecko”,从此“Like Gecko”也变成了一个行内皆知的萌词;

脑洞大开的Opera觉得IE和Konqueror的做法真的太棒了,甚得吾心!于是他直接在菜单提供了三个UserAgent 选项,让用户选择IE/Firefox/Opera,想变谁就变谁;

几年间IE虽然独霸、但不思进取,自己搞一套web标准,还不能完美支持html、javascript、css等新特性,一直维持着速度慢、体验差、不稳定的特点,让人不得不想要找个更好的替代品;

2008年,谷歌(Chrome)参战,内核是WebKit的一个分支,命名为chromium, 后来谷歌研发了自己的JavaScript引擎V8,极大地提高了JS的运算速度;

2009年谷歌推出Chrome扩展库,用户可以安装第三方插件到Chrome;

2010年,苹果就已经发布了Webkit2。Webkit2的目标是将元件抽象化,并提供更干净的网页渲染。

2012年,Chrome占有31%的市场份额,取代IE成为全球最受欢迎的浏览器;

2013年谷歌推出全新的浏览器内核项目Blink,Opera玩了几年自己的内核后,跟Google一起开发Blink内核,并在4月发布第一个版本。

微软为了遏制Chrome,从09年开始频繁更新IE和Trident内核版本号,当年就发布了Trident4.0,11年Trident5.0,12年Trident6.0,13年Trident7.0(即IE 11,随Windows 8.1发行);

2015年,微软对IE极致优化并改名为EdgeHTML,跟随Win10同步发布。但是Edge可以做的一切Chrome和Firefox都可以做得更好。

2018年12月,微软正式确认,新的Edge浏览器将从EdgeHTML内核迁移为Chromium内核,正式版已于2020年1月15日正式发布。

2021年5月19日,微软宣布IE浏览器将在次年退出市场,2022年6月15日,大多数版本的Windows 10系统不再支持IE浏览器(IE11退役),取而代之的是更新、更快、更安全的Edge浏览器。

最后我们来总结下浏览器的UserAgent:

  • 谷歌Chrome(Webkit、Blink)

UserAgent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Safari/537.36

Chrome的为啥有(Safari)?
    谷歌会意一笑:你懂的—,原来Chrome浏览器的内核也是Webkit呀! Chrome希望获得Safari的页面,所以伪装成了Safari。

  • 苹果Safair(Webkit、Webkit2)

UserAgent:Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5。

Safair的为啥它会带有(KHTML, like Gecko)?
    苹果邪魅一笑:别大惊小怪,我们的内核Webkit排版引擎的核心叫WebCore,而WebCore是KHTML衍生而来的。苹果公司只能在UserAgent加上 (KHTML, like Gecko) 。

  • 微软IE/Edge(Triden、Blink)

IE11-UserAgent:Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
    Edge-UserAgent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36Edge/13.10586

IE11/Edge的啥它会带有(KHTML, like Gecko)?
    KHTML易容成Gecko,IE宣称自己是Mozilla。

  • 火狐Firefox

User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0

所以现在的浏览器,你随便打开一个,查看他们的UserAgent,都会发现或多或少带有这些印记。

什么是UserAgent相关推荐

  1. 使用cat,awk和sort命令从nginx访问日志中统计user-agent类型

    业务场景描述如下: 我有一个Nginx的web服务器,需要从统计日志中统计有哪些类型的设备终端和浏览器访问了我的网站. 访问日志中的每条记录是这样的: 使用下面的命令得到user-agent所在的字段 ...

  2. 常见浏览器User-Agent大全

    下面是工作中需要用到的常见浏览器User-Agent字符串的收集整理,不断更新中. Opera Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537. ...

  3. 从浏览器发展史读懂user-agent

    世界上第一个浏览器:WorldWideWeb(和万维网重名),改名Nexus,只能在NeXT系统运行. 世界上第二个浏览器:Line Mode Browser,C语言编写,只能显示文本,可以移植到不同 ...

  4. 爬虫之selenium替换user-agent

    selenium控制谷歌浏览器时,User-Agent默认是谷歌浏览器的 替换user-agent的方法 实例化配置对象 options = webdriver.ChromeOptions() 配置对 ...

  5. 设置user-agent骗过服务端安全检查

    有些网站的网页或图片通过浏览器访问,是没有问题的,可以正常访问.但通过resttemplate或httpclient访问时就会出现403 Forbidden, 百度了一下,出现403有以下原因: 1. ...

  6. tc写入txt成功却没有内容_挖洞经验 | 构造UserAgent请求头内容实现LFI到RCE提权

    本文分享的Writeup是作者近期针对某20000+用户网站,通过对请求User-Agent内容构造,成功实现从本地文件包含漏洞(LFI)到远程代码执行漏洞(RCE)的提权. 发现LFI漏洞 以下为目 ...

  7. postman指定User-Agent的header无效

    2019独角兽企业重金招聘Python工程师标准>>> 今天调试某个接口,server根据User-Agent不同返回不同内容,用postman调试,结果指定了User-Agent的 ...

  8. 搜索引擎爬虫蜘蛛的USERAGENT大全

    搜索引擎爬虫蜘蛛的USERAGENT大全 搜索引擎爬虫蜘蛛的USERAGENT收集,方便制作采集的朋友. 百度爬虫 * Baiduspider+(+http://www.baidu.com/searc ...

  9. scrapy中使用代理cookies user-agent

    在(属于下载中间件)中间件中定义 class UserAgentMiddleware(): def init(): self.useragents=[ ] def process_request(se ...

  10. ipad运行python爬虫_Python爬虫之UserAgent的使用实例

    问题: 在Python爬虫的过程中经常要模拟UserAgent, 因此自动生成UserAgent十分有用, 最近看到一个Python库(fake-useragent),可以随机生成各种UserAgen ...

最新文章

  1. python工程计算软件库_python中常用的科学计算工具包
  2. 【pmcaff】打开页面,这个行为值多少钱?
  3. Java的List转Scala的数组
  4. 游戏使用html签名,关于玩游戏的个性签名
  5. python pip全称_Python pip 安装与使用
  6. Android—内存泄漏、GC及LeakCanary源码解析
  7. Django 路由层
  8. 重置Oracle密码
  9. 奇闻异事之NoSuchMethodError
  10. firebase使用_如何开始使用Firebase Hosting
  11. C++ lambda表达式 std::function 深层详解
  12. C语言差分双向码编码,基于c语言的数字基带信号码型变换系统设计1.doc
  13. 网络爬虫---微信爬虫
  14. signature=af972d07a7b1e8cd17a3d011d31aa690,a00836.html
  15. 英语四六级必备资料(全网最全)
  16. 资料:基于MPSOC XCZU15EG-2FFVB1156I 的PCIe FMC 光纤接口处理卡设计资料保存
  17. 绝佳的充电时间:自我隔离时何不探索这些数据科学技术
  18. 计算机函数说课ppt,《excel公式与函数》说课稿
  19. AutoCAD 2019,cad设计绘图必备哦
  20. 关于计算机培训策划案,2019年计算机培训策划书.docx

热门文章

  1. android虚拟按键趋势,为什么Android虚拟按键老被吐槽但却有厂商坚持在做?
  2. 应用计算机测定电阻伏安特性,实验: 应用计算机测线性电阻伏安特性
  3. 修改客户端 与服务器断开,如何处理服务器或客户端socket断开
  4. 杨森翔书法:立马越王台
  5. 批量爬取网站图片-“优美库”篇(爬虫实战)
  6. debian apache2不执行php,Debian下Apache2的安装与配置
  7. python创建person类用printinfo方法_python学习(三)面向对象
  8. hdu 4489(排列组合+DP)
  9. 开关电源-半桥LLC控制
  10. ArcGIS,CC(Smart3D),ENVI....工作中常用软件的汉化包都在这,随你下载