有ua标识的浏览器(一文道尽浏览器UA的前世和今生)

——UA不正当竞争案的技术背景

作者 | 张勇 乐视网

(本文系知产力获得独家首发的稿件,转载须征得作者本人同意,并在显要位置注明文章来源。)

(本文6574字,阅读约需11分钟)

最近,北京市海淀区人民法院发布了网络不正当竞争纠纷十大典型案例,其中之一就是有关浏览器UA的案件。这一案例虽非国内第一个与浏览器UA相关的案例,但却是首例对浏览器UA本身的合法性进行论证的案例。

浏览器UA技术虽然与浏览器本身的历史几乎同样悠久,在浏览器行业也有着广泛应用,但是普通法律人,对此却往往比较陌生。本文从介绍浏览器UA的起源、历史和现状出发,尝试以法律人的视角对其中的法律相关问题浅析一二,以期抛砖引玉,或亦可对广大同仁处理同类案件有所助益。

UA是什么

(一)概念

UA,全称为“User Agent”,中文通常直译为“用户代理”,但从其产生作用的机制来看,或许称之为“浏览器标识”或“浏览器名片”更为妥帖。

实际上,UA是一个浏览器被用来访问网站时发送给网站服务器的一串特定字符,其内容通常包含了“操作系统及版本”、“CPU 类型”、“浏览器及版本”、“浏览器渲染引擎”、“浏览器语言”、“浏览器插件”等信息。网站服务器可以根据这串字符大体判断出用户所使用的软硬件环境,进而采取不同的内容策略。这些内容策略在互联网早期时代通常是为了解决兼容性问题,这一点本文后面会再介绍。

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(1)

以iPad上的Safari为例,其使用的UA就是以下字符串(根据Safari版本的不同,UA字符串可能会有所变化):

Mozilla/5.0(iPad;U;CPU OS 3_2_1 like Mac OS X; en-us)AppleWebWebKit/531.21.10(KHTML, like Gecko) Mobile/7B405

这一组字符串的组成及其说明如下:

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(2)

面对Safari浏览器的UA,我们难免产生如下疑问:

疑问一:Safari浏览器的名称为何标记为Mozilla,而不是Safari本身?

疑问二:Safari浏览器内核信息除了标记为AppleWebWebKit,为何还标记出“KHTML, like Gecko”?

要解答这两个疑问,就要从浏览器UA的历史说起了。

UA的前世今生

(一)混沌初开

因特网诞生后,英国计算机科学家Berners-Lee率先指出将超文本嫁接到因特网的可行性。1990年,Berners-Lee在一台NeXT工作站上写出了第一个网页实现他的想法。就这样,万维网(WorldWideWeb)诞生了,Berners-Lee也因此被称为Web之父。

同年,Berners-Lee还制作了万维网所需的两个最基础的工具——第一个网页服务器和第一个网络浏览器。Berners-Lee将浏览器命名为“Nexus”。从这个意义上讲,Berners-Lee也是浏览器之父。然而,Nexus浏览器只能显示文字,无法显示图片,这就为此后其他浏览器的出现留下了市场空间,也为UA的出现埋下了种子。

(二)神猴出世

由于Nexus浏览器的不足之处,实现浏览图片的功能就成了用户的迫切需求。1993年1月23日,National Center for Supercomputing Applications,简称NCSA组织,发布了互联网历史上第一个图形化的浏览器——Mosaic(马赛克)。Mosaic浏览器可以同时展示文字和图片,使浏览器变得有趣而流行起来。

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(3)

为了发挥Mosaic浏览器的优势,让网页服务器可以向Mosaic浏览器推送有图片的内容,有必要让网页服务器将Nexus浏览器和Mosaic浏览器区别开来。NCSA组织的做法是,在访问网页服务器时,首先向服务器发送特定的字符串:“Mosaic/2.0(Windows 3.1)”以此作为自己浏览器的标识。从此UA诞生了。

此时的UA确实一身清白,仅仅表明了自己是什么浏览器和所在系统,以及两者的版本号。

(三)占山为王

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(4)

1994年,Mosaic浏览器的研发核心成员马克·安德森(Marc Andreessen)和几何图形发生器的发明人吉姆·克拉克(Jim.H.Clark)组建公司发布了另一款浏览器,命名为Mozilla,中文名称摩斯拉。从此,堪称伟大的Mozilla浏览器诞生了。

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(5)

1994年12月Mozilla改名为Netscape,即网景浏览器,但Netscape仍然将自己标识为Mozilla:“Mozilla/1.0(Win3.1)”。由于当时网页开发中开始流行框架技术,Netscape支持框架技术,而其他浏览器要么不支持要么支持的不好, Netscape很快成为当时最流行和市场占有率最高的浏览器。同时,网站管理员在服务器的设置上开始使用探测技术和差异化页面,对Netscape浏览器发送含有框架的页面,对非Netscape浏览器发送没有框架的页面。

Mozilla在浏览器历史上的地位举足轻重。不但其诞生之后风靡程度一时无两,成为众多浏览器竞相学习的对象。而且在随后的历史中,虽然其几经波折,多次更名,屡屡面临生死考验,但Mozilla每每如凤凰般涅槃重生,其“后嗣”始终在市场上占有一席之地。甚至到了今天,Mozilla作为一款浏览器本身已从市场上消失,但众多浏览器仍然在UA中将自己标记为“Mozilla”。

可以说,Netscape以及后续的Firefox浏览器是Mozilla根正苗红的正统传人,在UA中将自己标记为Mozilla无可非议。但是很快,“六耳猕猴”出现了,其他浏览器也纷纷将自己标记为Mozilla。这一切的“始作俑者”,正是微软的IE浏览器。那一年,是1995年。

(四)真假猴王

1995年8月16日,微软开发了自己的支持框架技术的浏览器Internet Explorer(简称IE),并希望能够取代Netscape浏览器。但微软很快就发现,尽管IE浏览器也同样支持框架,却往往并不能收到包含框架的页面。原因是网站的服务器会在收到浏览器的访问请求时先判断是什么浏览器在访问自己,如果UA中含有Mozilla,则认为是Mozilla(Netscape)在访问自己,就向浏览器推送有框架的页面;如果UA中不包含Mozilla,则认为是其他浏览器在访问自己,就向浏览器推送不含框架的页面。

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(6)

为了用户使用IE时也能收到有框架的页面,微软开始声称自己是兼容Mozilla的,并且模仿Netscape的标识,使用Useragent将自己标记为“Mozilla/1.22(compatible; MSIE 2.0; Windows 95)”,于是IE也可以收到含有框架的页面了。从此,Useragent开始成为浏览器解决兼容性和改善用户体验通常采取的一种重要技术。之后IE版本几经更新,所使用的UA与第一代IE或多或少都会有所区别,但伪装成Mozilla的做法则一直没有改变,并被后世的浏览器纷纷效仿。

从这段历史我们可以观察到,在1990年-1995年这短短6年时间里,我们经历了浏览器的诞生、UA的出现、UA伪装被IE浏览器用于解决兼容性问题三个重要历史事件。而自1995年至今的20多年间,UA伪装被广泛应用,基本成为每一个浏览器的必备功能。那么,UA伪装是否能够因为其广泛应用以及其解决兼容性问题的积极目的而在法律上取得正当性和合法性呢?这是一个值得我们思考的问题。

浏览器行业及其UA经过20多年的发展,互相竞争,互相借鉴,逐渐形成了4支使用不同内核的市场力量。

(五)取经队伍

圣师玄奘——Gecko

随着IE浏览器的流行,Netscape逐渐退出历史舞台,但其公司内的技术宅们却不甘失败,2003年7月15日以Mozilla基金会(Mozilla org)名义发布了Firefox浏览器,其浏览器内核,被命名为Gecko,仍然沿用Mozilla浏览器的UA “Mozilla/5.0(Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826”。

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(7)

由于Gecko的出色,和IE的止步不前,UA的探测规则一度又发生了变化——使用Gecko的浏览器被发送了更好的网页代码,其他浏览器没有这种待遇。于是众多浏览器纷纷将Gecko加入到自己的UA当中。

就Mozilla这一名号来说,Gecko(Firefox)根正苗红,堪称正统,可以称之为大唐圣僧。与此同时,由于吃唐生肉可以长生不老,其他浏览器恨不得都来咬上一口,至少蹭蹭热点,纷纷在自己的UA中加入Gecko,这也就是like Gecko这一字符的由来。

大师兄——KHTML/WebKit

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(8)

1996年10月14日,Linux开源社区开发出使用KHTML内核的Konqueror浏览器时,既将自己伪装成Mozilla,又声称兼容Gecko(like Gecko)。其浏览器UA为“Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)”

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(9)

2003年1月7日,苹果使用源自KHTML渲染引擎的Webkit内核,开发了Safari浏览器。苹果为了兼容性考虑,将KHTML的UA中的Mozilla、Gecko、KHTML统统继承下来。于是苹果将Safari浏览器的UA标记为“Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5”。与IE浏览器不同的是,苹果在其部分浏览器默认UA中除了伪装成Mozilla之外,还在UA的末尾标记出自己独特的浏览器标识Safari,这为后续Safari流行之后网站针对Safari进行优化留下了空间(其ipad则并未做此标识),现在看来,不得不佩服苹果的自信与野心。目前众多网站特别是移动端的网站已纷纷针对Safari做专门适配。

2008年9月2日,谷歌使用Webkit作为渲染引擎,开发了Chrome浏览器。和Safari一样,它想要浏览那些为Safari编写的页面,于是继承了Safari的UA“Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13”,并将自己的浏览器名称添加进去,收到的效果,也与苹果的做法如出一辙。

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(10)

KHTML/WebKit是非常优秀的浏览器核心,众多软件厂商纷纷开发基于这一核心的浏览器新品。Konqueror、Safari、Chrome先发在前,QQ浏览器、搜狗高速浏览器、360浏览器紧随其后。它就如同孙悟空一样会七十二般变化,不断衍生出新的浏览器,拥有众多猴子猴孙,不亏为浏览器界的大师兄。

二师兄——Trident (IE)

随着IE浏览器成为主流,其地位似乎越来越不可撼动。微软开始不思进取,IE浏览器虽然因其市场地位而获得了兼容性的优势,但其功能却裹足不前,易用性越来越差,逐渐跟不上时代步伐。此时,诞生了众多以IE(Trident内核)为浏览器核心的功能增强型浏览器,如世界之窗浏览器、遨游浏览器(旧版)等,其UA也与IE存在继承关系,再此不一一赘述,感兴趣的朋友,可以查看本文最后所附清单。IE及其Trident内核,就如二师兄一样,虽然曾经风生水起,贵为天蓬元帅,但现在已经臃肿笨拙,不堪重用。

三师弟——Opera

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(11)

1994年Opera浏览器发布,它不像其他浏览器那样把自己标记成其Mozilla,而是使用自己特有的UA “Opera/9.51 (Windows NT 5.1; U; en)”。但这种坚持也是导致Opera长期以来最为人所诟病的兼容性差的重要原因。使用其他浏览器非常正常的网页内容,使用Opera常常不是排版错乱就是乱码,要么就是字体显示颜色过浅看不清(特别是中文字体)——因为多数网站主要以IE或者说是早期Mozilla的渲染标准编写。

最终为了市场,Opera不得不做出些许妥协,但仍然不是简单粗暴地把自己标记为Mozilla,而是主张让用户来决定伪装成哪个浏览器。于是Opera浏览器创建了菜单选项,让用户自主选择变成“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51”,或者“Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51”, 或者“Opera/9.51 (Windows NT 5.1; U; en)”。

由于Opera的这一做法非常人性化,取得了不错的效果,之后出现的浏览器或浏览器的新版本,无论是Mozilla一脉,或是IE及以IE为核心浏览器一族,还是Konqueror、Safari、Chrome这一队,都纷纷效仿,添加可以由用户修改UA的功能——要么与Opera一样提供预置好的数个UA供用户选择,要么提供UA修改功能使用户可以将UA修改为任意内容。

只不过,由于Opera特立独行,虽然其口碑很好,功能完备,市场占有率却一直没有起色,就如三师弟一样在取经路上缺乏存在感。

(六)译布中华

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(12)

自第一个网络浏览器发布至今,已有28年历史。浏览器的开发难度,也已由顶级技术大神的造物,变成了普通软件工程师的玩物。市场上,浏览器如雨后春笋般出现,呈现出百花齐放的局面。只是,目前的浏览器数量虽多,其所使用的浏览核心,却无非Gecko 、IE、KHTML(WebKit)、Opera四大族裔。故其所使用的浏览器UA,也几乎均与其前辈存在继承关系。就现状而言,虽然各个浏览器UA都会有所区别,却也可以总结出如下特点:

1、几乎所有的浏览器都提供了UA修改功能,供用户伪装成其他浏览器;

2、默认UA均以Mozilla开头(Opera除外)。

除此之外,移动端的浏览器UA往往还具有以下共性:

1、相较PC端的浏览器,移动端往往提供更为方便的修改UA功能

2、几乎都会提供分别“伪装”成iPhone、ipad、PC(IE)三种UA选项。

如果把UA的作用视为一种伪装的话,会得出一个非常有趣的结论:Chrome伪装成Safari;Safari伪装成KHTML;KHTML伪装成Gecko;Gecko、IE伪装成Mozilla,最终所有的浏览器(只有Opera除外)都伪装成Mozilla。而Mozilla以一个浏览器而言,已经从市场上消失,却还活在其他浏览器的UA之中。

微软可以说是这种伪装行为的“始作俑者”,但后来的每一个浏览器在模仿微软的做法。因为,网站的开发者往往会因为某一浏览器所具备的某些功能而输出一些与之对应的网页代码来实现特殊的功能,当其他浏览器也具备这些功能时,就试图去“伪装”成这一浏览器让网站向自己输出与之同样的网页代码,而不是被阉割了功能的网页代码。各个浏览器都是为了让用户在访问网站时能够获得最好的内容和浏览体验。

是非功过

(一)伪装他人与标记自己同样重要

UA中的他人浏览器标识可以实现兼容他人浏览器访问网站效果的作用,UA中的自己浏览器标识可以引导和方便网站为自己的浏览器进行兼容性适配。仅仅伪装“他人”未免彻底沦为“欺骗”,而仅仅标记自己,无疑在目前的市场上无异于自绝于客户。我们既不能无视UA伪装的欺骗性,也不能UA仅仅用于标记自己,置市场占有率较低的浏览器于死地。

(二)伪装只是手段,提升用户体验才是正当目的

当初微软的这一做法带有“欺骗”性质——它使IE浏览器可以被网站识别为当时的主流浏览器Mozilla,让用户使用IE浏览器也能接收到服务器为Mozilla浏览器准备的页面,使IE浏览器能够取得与主流浏览器一致的用户体验。先河一开,此后的浏览器纷纷效仿IE,几乎全部在诞生之初一方面努力在功能上兼容主流浏览器,另一方面在UA上将自己标记为主流浏览器。微软之所以被称之为“始作俑者”,这正是重要原因。

然而如果细想,微软的做法似乎又具有一定的合理性。网站出于成本的考虑往往只会适配主流浏览器,并通过UA来识别浏览器是否为主流。市场占有率小的浏览器注定得不到网站的适配,导致小众浏览器即使与主流浏览器具有同样的功能,在网站面前却仍然遭受着差人一等的待遇,无法让用户获得应有的,与主流浏览器一致的使用体验。Mozilla是主流时,IE的境遇如此——无法收到带有框架的页面;IE成为主流后,Chrome、Firefox的境遇同样如此——众多网站特别是银行网站会弹出请使用IE浏览器进行访问的提示;再后来苹果热卖,Safari大行其道,其他小众浏览器又遭受同样的境遇。

那么一个浏览器尚处于起步阶段,市场占有率较低时,如何使自己能够获得网站对主流浏览器相同的待遇,一样的用户体验呢?既然网站不会屈尊兼容弱小的浏览器,那么就只有弱小的浏览器主动兼容网站一途,而把主流浏览器的标识加入到自己的UA当中就几乎是其唯一可行的方式。虽然这一方式是告诉网站服务器“我是主流浏览器”,似乎可以解读为“欺骗”。但如果换一个角度思考,它似乎也能解读为在向网站服务器声明“我兼容主流浏览器”。

如果仅仅是以改善兼容性,提高用户体验为目的,那么伪装成其他浏览器,在近30年的浏览器发展史上,应该是有其正当性的。

(三)遗留问题:“附带伤害”是否侵权

通常,网站针对不同浏览器UA所做不同内容推送策略,仅与浏览器对不同网络技术的支持和兼容程度有关,对于支持该技术的浏览器推送使用该技术的网页内容;对于不支持或网站认为未必支持该技术的浏览器则推送不使用该技术的网页内容。

但是,现在也有不少网站针对不同浏览器UA所做的不同内容推送策略不再限于兼容性问题。而是将其某种商业利益捆绑与某一种或者某一些浏览器,而对另一些浏览器则捆绑另一种不同甚至冲突的商业利益。

例如,一些网站视频网站针对pc端或者android端的浏览器推送视频前贴片广告,而针对iphone自带的Safari浏览器则不推送视频前贴片广告;此时,如果用户使用伪装成为Safari的浏览器浏览这些网站,即使所使用的平台是pc或者android,也照常可以浏览这个网站而不必观看视频前贴片广告;或者说如果一个浏览器在浏览这个网站时将自己伪装成Safari,则使用这个浏览器的用户则可以浏览这个网站而不必看到视频前贴片广告。

在这个例子中,将自己伪装成Safari的浏览器是否侵犯了这个网站的“合法权益”——通过改变浏览器自身,将无需观看网站广告的人群从iphone用户扩大到pc和android用户。据此将浏览器认定为侵权或者不正当竞争的观点,不得不面临这个问题——过错在谁?

浏览器无法预知自己通过UA进行伪装的后果。不观看广告的人群扩大,对浏览器而言时被动产生的,而主动权掌握在网站手中。浏览器修改自身UA伪装成其他浏览器,会造成无需观看广告的人群扩大还是缩小,取决于网站服务器的设置。在上述案例中,假如网站服务器设置为Safari有广告而android端或者pc端无广告,那么伪装成Safari的浏览器导致的效果就是观看广告的人群扩大了,而不是不观看广告的人群。在这种情况下网站是否应将扩大所给自己带来的额外收益视为不当得利交给浏览器呢?如果答案是否定的,那么当不管看广告的人群扩大时为什么可以认定为浏览器的行为侵权或者不正当竞争?

对于浏览器UA法律属性,笔者相信法律界还会继续讨论下去。

(本文仅代表作者个人观点,与知产力无关)

有ua标识的浏览器(一文道尽浏览器UA的前世和今生)(13)

附录

浏览器默认UA大全

1、移动端

Android N1

Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

Android Pad Moto Xoom

Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13

BlackBerry

Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1 (KHTML, like Gecko) Version/6.0.0.337 Mobile Safari/534.1

QQ浏览器 For android

MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

Opera浏览器

Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/build-1107180945; U; en-GB) Presto/2.8.149 Version/11.10

safari iOS 4.33 – iPhone

Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5

2、PC端——国产浏览器

搜狗浏览器 1.x

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)

Green Browser浏览器

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)

The World浏览器 2.x

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)

The World浏览器 3.x

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)

Maxthon浏览器

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)

TT浏览器

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)

360SE浏览器

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)

2、PC端——国外浏览器

safari 5.1 – Windows

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50

IE 9.0

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)

IE 8.0

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)

IE 7.0

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)

IE 6.0

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Firefox 4.0.1 – Windows

Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1

Opera 11.11 – Windows

Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11

Chrome 17.0 – MAC

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页