全国服务热线:
0791-88196636

南昌莫非网络科技:Netscape Navigator、Internet Explorer、Gecko用户代理字符串的历史

 二维码 45748
发表时间:2020-12-09 10:27作者:南昌莫非网络科技公司来源:南昌莫非网络科技公司网址:http://www.ncmofei.com

南昌莫非网络科技:Netscape Navigator、Internet Explorer、Gecko用户代理字符串的历史.

用户代理检测通过检测用户代理字符串来确定实际使用的浏览器。在每一次HTTP请求过程中,用户代理字符串是作为响应首部发送的,而且该字符串可以通过JavaScript的navigator.userAgent属性访问。在服务器端,通过检测用户代理字符串来确定用户使用的浏览器是一种常用而且广为接受的做法。而在客户端,用户代理检测一般被当作一种万不得已才用的做法,其优先级排在能力检测和(或)怪癖检测之后。


提到与用户代理字符串有关的争议,就不得不提到电子欺骗(spoofing)。所谓电子欺骗,就是指浏览器通过在自己的用户代理字符串加入一些错误或误导性信息,来达到欺骗服务器的目的。要弄清楚这个问题的来龙去脉,必须从Web问世初期用户代理字符串的发展讲起。


用户代理字符串的历史


HTTP规范(包括1.0和1.1版)明确规定,浏览器应该发送简短的用户代理字符串,指明浏览器的名称和版本号。RFC 2616(即HTTP l.1协议规范)是这样描述用户代理字符串的:


“产品标识符常用于通信应用程序标识自身,由软件名和版本组成。使用产品标识符的大多数领域也允许列出作为应用程序主要部分的子产品,由空格分隔。按照惯例,产品要按照相应的重要程度依次列出,以便标识应用程序。”


上述规范进一步规定,用户代理字符串应该以一组产品的形式给出,字符串格式为:标识符/产品版本号。但是,现实中的用户代理字符串则绝没有如此简单。


1.早期的浏览器


1993年,美国NCSA (National Center for Supercomputing Applications,国家超级计算机中心)发布了世界上**款Web浏览器Mosaic。这款浏览器的用户代理字符串非常简单,类似如下所示:


Mosaic/0.9


尽管这个字符串在不同操作系统和不同平台下会有所变化,但其基本格式还是简单明了的。正斜杠前面的文本表示产品名称(有时候会出现NCSA Mosaic或其他类似字样),而斜杠后面的文本是产品的版本号。


Netscape Communications公司介入浏览器开发领域后,遂将自己产品的代号定名为Mozilla(Mosaic Killer的简写,意即Mosaic杀手)。该公司**个公开发行版,Netscape Navigator2的用户代理字符串具有如下格式:


Mozilla/版本号[语言](平台;加密类型)


Netscape在坚持将产品名和版本号作为用户代理字符串开头的基础上,又在后面依次添加了下列信息:


口语言:即语言代码,表示应用程序针对哪种语言设计;


口平台:即操作系统和(或)平台,表示应用程序的运行环境;


口加密类型:即安全加密的类型。可能的值有U(128位加密)、I (40位加密)和N(未加密)。


典型的Netscape Navigator 2的用户代理字符串如下所示:


Mozilla/2. 02 [ fr] (WinNT; 工)


这个字符串表示浏览器是Netscape Navigator 2.02.为法语国家编译,运行在Windows NT平台下,加密类型为40位。那个时候,通过用户代理字符串中的产品名称,至少还能够轻易地确定用户使用的是什么浏览器。


2. Netscape Navigator 3和Internet Explorer 3


1996年,Netscape Navigator 3发布,随即超越Mosaic成为当时***的Web浏览器。而用户代理字符串只作了一些小的改变,删除了语言标记,同时允许添加操作系统或系统使用的CPU等可选信息。于是,格式变成如下所示:


Mozilla/版本号(平台;加密类型[j操作系统或CPU说明])


运行在Windows系统下的Netscape Navigator 3的用户代理字符串大致如下:


Mozilla/3.0 (Win95;U)


这个字符串表示Netscape Navigator 3运行在Windows 95中,采用了128位加密技术。可见,在Windows系统中,字符串中的操作系统或CPU说明被省略了。


Netscape Navigator 3发布后不久,微软也发布了其**款赢得用户广泛认可的Web浏览器,即Internet Explorer 3。由于Netscape浏览器在当时占绝对市场份额,许多服务器在提供网页之前都要专门检测该浏览器。如果用户通过IE打不开相关网页,那么这个新生的浏览器很可能就会夭折。于是,微软决定将IE的用户代理字符串修改成兼容Netscape的形式,结果如下:


Mozilla/2.0(compatible; MSIE版本号;操作系统)


例如,Windows 95平台下的Internet Explorer 3 .02带有如下用户代理字符串:


Mozilla/2.0 (compatible; MSIE 3.02; Windows 95)


由于当时的大多数浏览器嗅探程序只检测用户代理字符串中的产品名称部分,结果IE就成功地将自己标识为Mozilla,从而伪装成Netscape Navigator。微软的这一做法招致了很多批评,因为它违反了浏览器标识的惯例。更不规范的是,IE将真正的浏览器版本号插入到了字符串的中间。


字符串中另外一个有趣的地方是标识符Mozilla 2.0(而不是3.0)。毕竟,当时的主流版本是3.0,改成3.0应该对微软更有利才对。但真正的谜底到现在还没有揭开——但很可能只是人为疏忽所致。


3. Netscape Communicator 4和Internet Explorer 4-8


1997年8月,Netscapte Communicator4发布(这一版将浏览器名字中的Navigator换成了Communicator)。Netscape继续遵循了第3版时的用户代理字符串格式:Mozilla/版本号(平台;加密类型[;操作系统或CPU说明])


因此,Windows 98平台中第4版的用户代理字符串如下所示:


Mozilla/4.O(Win98;工)


Netscape在发布补丁时,子版本号也会相应提高,用户代理字符串如下面的4.79版所示:


Mozilla/4. 79 (Win98;工)


但是,微软在发布Internet Explorer4时,顺便将用户代理字符串修改成了如下格式:


Mozilla/4.O(compatible; MSIE版本号j操作系统)


换句话说,对于Windows 98中运行的IE4而言,其用户代理字符串为:


Mozilla/4.O(compatible; MSIE 4.O;Windows 98)


经过此番修改,Mozilla版本号就与实际的IE版本号一致了,为识别它们的第四代浏览器提供了方便。但令人遗憾的是,两者的一致性**于这一个版本。在Internet Explorer 4.5发布时(只针对Macs),虽然Mozilla版本号还是4,但IE版本号则改成了如下所示:


Mozilla/4.O (compatible; MSIE 4.5;Mac_PowerPC; Trident/4.O)


此后,lE的版本一直到7都沿袭了这个模式。而IE 8的用户代理字符串中添加了呈现引擎(Trident)


的版本号①:


Mozilla/4.O(compatible; MSIE 8.0;Windows NT 5 .1; Trident/4.O)


至于IE的后续版本会不会修改Mozilla版本号,目前还无从知晓;南昌网页设计公司技术人员认为,改不改这个版本号,意义已经不大了(谁也不能指望通过它得到什么可靠的结论)。


4.Gecko


Gecko是Firefox的呈现引擎。当初的Gecko是作为通用Mozilla浏览器的一部分开发的,而**个采用Gecko引擎的浏览器是Netscape 6。为Netscape 6编写的一份规范中规定了未来版本中用户代理字符串的构成。这个新格式与4.x版本中相对简单的字符串相比,有着非常大的区别,如下所示:


Mozilla/Mozilla版本号(平台;加密类型;操作系统或CPU;语言;预先发行版本)


Gecko/Gecko版本号应用程序或产品/应用程序或产品版本号


这个明显复杂了很多的用户代理字符串中蕴含很多新想法。下表列出了字符串中各项的用意。


字符串项 必需吗 说 明


Mozilla版本号 是 Mozilla的版本号平台 是 浏览器运行的平台。可能的值包括Windows. Mac和XII(指Unix的X窗口系统)


加密类型是加密技术的类型:U表示128位、I表示40位、N表示未加密操作系统或CPU 是 浏览器运行的操作系统或计算机系统使用的CPU。在Windows平台中,这一项指Windows的版本(如WinNT、Win95,等等)。如果平台是Macintosh.这一项指CPU(针对PowerPC的68K、PPC,或


Maclntel)。如果平台是Xll,这一项是Unix操作系统的名称,与使用Unix命令uname- sm得到的名称相同语言是浏览器设计时所针对的目标用户语言预先发行版本 否 最初用于表示Mozilla的预先发行版本,现在则用来表示Gecko呈现引擎的版本号Gecko版本号 是 Gecko呈现引擎的版本号,但由yyyymmdd格式的日期表示应用程序或产品 否 使用Gecko的产品名。可能是Netscape、Firefox,等等


应用程序或产品版本号 否 应用程序或产品的版本号;用于区分Mozilla版本号和Gecko版本号为了帮助读者更好地理解Gecko的用户代理字符串,下面我们来看几个从基于Gecko的浏览器中取得的字符串。


Windows XP下的Netscape 6.21:


Mozilla/5.O(Windows;U;Windows NT 5 .1; en-US; rv:0.9.4)Gecko/20011128 Netscape6/6.2.1


Linux下的SeaMonkey l.la:


Mozilla/5.0(X11;U;Linux i686; en-US; rv:1.8.1b2) Gecko/20060823 SeaMonkey/l. la


Windows XP下的Firefox 2.0.0.11:


Mozilla/5.0(Windows;U;Windows NT 5.1;en-US; nr:1.8.1.ll) Gecko/20071127 Firef ox/2.0.0.11


Mac OSX下的Camin0 1.5.1:


Mozilla/5.0(Macintosh;U;Intel Mac Os X;en; nr:1.8.1.6)Gecko/2 0070809 Camino/l.5.1


以上这些用户代理字符串都取自基于Gecko的浏览器(只是版本有所不同)。南昌网络公司技术员认为很多时候,检测特定的浏览器还不如搞清楚它是否基于Gecko更重要。每个字符串中的Mozilla版本都是5.O,自从**个基于Gecko的浏览器发布时修改成这个样子,至今就没有改变过;而且,看起来以后似乎也不会有什么变化。


企业新闻
关于南昌莫非网络科技公司2022年元旦放假安排通知.元旦:1月1日(星期六)至1月3号(星期一)放假,共计三天(无调休),1月4日(星期二)上班。
关于南昌莫非网络科技公司2021年国庆节放假安排通知。根据《国务院办公厅关于2021年部分节假日安排的通知》(国办发明电〔2020〕27号),结合我单位工作实际情况,现就2021年国庆放假的有关事项安排如下。
南昌莫非网络科技公司2021年中秋节放假通知.一、假期从:2021年09月19日到2021年09月21日结束,假期共3天(9月18日正常上班,9月26日正常休息)。二、如有紧急情况,请各位同仁及时配合相关部门主管人员把事情处理妥善。做好防火、防盗工作并督促各部门关好办公区域的门、窗等。
根据《国务院办公厅关于2021年部分节假日安排的通知》(国办发明电〔2020〕27号),结合我单位工作实际情况,现就2021年端午节放假的有关事项安排如下:一、放假时间:2021年6月12日(星期六)至2021年6月14日(星期一),共放假3天。
南昌莫非网络科技公司2021年五一劳动节放假通知.现就2021年五一劳动节放假的有关事项安排如下:一、放假时间,2021年5月1日(星期六)至2020年5月5日(星期三),共放假5天。4月25日(星期日)上班,5月6日(星期四)正常上班。
南昌莫非网络科技公司2021年清明节放假通知.2021年4月3日(星期六)-2021年4月5日(星期一)放假,共3天。4月6日(星期二)正常上班。放假期间,各项业务照常运行,售后问题您可以直接相关负责人提交服务单,技术人员将在12小时之内处理。
关于南昌莫非网络科技公司2021年春节放假安排通知.一、春节放假时间:2021年2月5日(农历腊月二十四)至2021年2月18日(农历正月初七)放假,共13天,2月19日(星期五)开始上班,2月21日星期日(农历正月初十)恢复正常上班。由于疫情,假期时间可能会有所变化,具体以通知为准。
关于南昌莫非网络科技公司2021年01月01日元旦放假通知。一、放假时间:2021年1月1日(星期五)至2021年1月3日(星期日)放假,共3天;2021年1月4日(星期一)正常上班。公司放假期间如有相关业务及服务事宜敬请拨打我司24小时服务热线:0791-8819-6636或咨询客服QQ:2401077293,可随时与我司进行联系。
南昌莫非网络科技公司2020年中秋节+国庆节放假通知。根据《国务院办公厅关于2020年部分节假日安排的通知》,为了让大家度过一个充实、平安的假期,现把2020年中秋国庆放假时间及温馨提示通知如下!
南昌莫非网络科技公司2020年五一放假通知.在过去的岁月里,南昌莫非网络科技公司与新老客户一直保持着愉快的合作,这离不开大家的鼎立支持和帮助。在未来的日子里还需要更多朋友们的支持与帮助,希望你们能始终如一的支持南昌莫非网络科技,并提出您宝贵的意见及建议。
南昌莫非网络科技公司2020年春节寒假放假安排通知。南昌莫非网络科技公司提前祝全国合作伙伴新春快乐、阖家幸福!预祝全体员工春节快乐!
南昌莫非网络科技公司2020年元旦节放假安排通知.元旦将至,南昌莫非网络科技公司预祝全体员工元旦快乐!现将2020年元旦节放假安排通告如下:一、放假时间:2020年1月1日,共1天。
网站建设行业方案
网站维护知识
网站制作常见问题
SEO网站优化教程
踏上云端,转型升级融入互联网时代,现在就联系我们吧!
——      我们时刻为你提供更多优质互联网技术服务      ——
姓名:
*
联系方式:
*
咨询项目:
内容:
*
在线留言
关于我们:南昌莫非文化传媒有限公司(简称:莫非传媒)专注于网站建设,网站SEO优化,小程序制作。提供全方位用户体验规划,品牌形象设计服务。为每一位企业客户的成长、腾飞助力!        网站建设、网站设计、网站制作、网站开发,就选网站建设公司-南昌莫非传媒!
扫一扫微信便捷交流
|
|
|
|
|
|
|
|
|
|
|
|
|
地址:江西省南昌市西湖区洪城路6号国贸广场A座巨豪峰
业务咨询  :  
272482065
售后服务 :
2401077293
服务热线:
0791-88196636
______________________________________________________________________________________________________________________________________________________________________________________________________