服务器套娃?啥是套娃
浏览器的“套娃行为”有多凶残
几乎所有的中国网民都不会忘记 2010年的“ 3Q大战”。
在腾讯做出那个“非常艰难的决定”之后,360不但不能与 QQ同时安装了,使用 360浏览器的用户也不再能访问 QQ空间。
QQ空间作为当时最受欢迎的社交网站,腾讯的这一操作就等同于宣判了 360浏览器的死刑。
在此次大战中,发挥着关键性作用的是「浏览器 UA」,我们今天就来好好讨论一下这个话题。
要讲清楚这个话题,我们要从 1990年说起。
1990年,英国计算机科学家蒂姆·伯纳斯·李巧妙地提出了 HTTP协议,然后又编写了世界上第一个浏览器 World Wide Web,万维网就此诞生。
1993年,美国国家超级电脑应用中心(NCSA)推出了一款叫做 Mosaic(马赛克)的浏览器,它第一次将图片与文字同时在一起展示。
从此,浏览器就变得有趣且流行起来。
为了发挥 Mosaic浏览器的优势,Mosaic浏览器在访问网页时,会事先向网页服务器发送一段特定的字符串来标记自己,这样使用 Mosaic的用户能收到有图片的内容了。
这个字符串 Mosaic/2.0(Windows 3.1)就是 UserAgent,简称 UA,中文叫作“用户代理”。
从此,浏览器 UA作为一种“根据用户软硬件环境,进而采用不同内容策略”的技术诞生了。
1994年,Mosaic项目的核心成员马克·安德森离职,然后发布了一款全新的浏览器 Mozilla。
Mozilla除了是 Godzilla的谐音外,它还是 Mosaic Killa的缩写,意思是要做 Mosaic的终结者。
然而在 Mosaic的压力之下, Mozilla还是改名为了 Netscape(网景)浏览器。
不过在设置浏览器 UA时,Netscape仍然使用了 Mozilla的名字,也就是 Mozilla/1.0(Win3.1)。
接着,Netscape浏览器率先支持了网页框架技术,而其他浏览器要么不支持,要么支持得不够好,Netscape很快成为当时最流行的浏览器。
1995年,微软宣布进军互联网,然后发布了 IE浏览器。
尽管 IE浏览器同样也支持框架技术,但总是收不到有框架的页面,原因是网页服务器会先检测浏览器 UA中是否包含有 Mozilla。
如果有,那就发送有框架的页面,如果没有,那就发送不含框架的页面。
微软等不及市场的反应,于是在 IE浏览器的 UA中加入了 Mozilla的字样,也就是 Mozilla/1.22(compatible; MSIE 2.0; Windows 95)。
这样 IE浏览器就能正常接收到有框架的页面了。
于是,浏览器 UA也成为了解决浏览器兼容性的一个重要手段。
没过多久,微软采用了将 IE与 Windows捆绑销售的策略,Netscape浏览器被打败退出历史舞台。
不甘失败的 Netscape团队在 2004年又推出了一款新的浏览器 Firefox。
Firefox浏览器使用的 Gecko引擎非常优秀,为了告诉大家,我使用了这个引擎,于是就加入到了浏览器的 UA里:
Mozilla/5.0(Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041108 Firefox/1.0。
由于 Gecko的出色和 IE的止步不前,浏览器 UA的探测规则发生了变化。
使用 Gecko引擎的浏览器可以得到更好的网页代码,而其他的浏览器则没有这种待遇。
Linux的追随者对此很难过,因为他们开发了基于 KHTML引擎的 Konqueror浏览器,他们认为 KHTML和 Gecko一样出色,但却因为不是 Gecko而得不到好的页面。
于是他们宣布 KHTML兼容 Gecko(like Gecko),浏览器 UA就变成了:
Mozilla/5.0(compatible; Konqueror/3.2; FreeBSD)(KHTML, like Gecko)。
一直使用自主 UA的浏览器 Opera也同样有这样的问题。
但 Opera不是简单地把自己也标记为 Gecko,而是主张让用户来决定变成什么样的浏览器。
于是 Opera在菜单里增加了浏览器 UA的选项,让用户来选择是变成 IE还是 Firefox,又或者是它自己本体。
2003年,苹果公司从 KHTML引擎中分支出来了 Webkit,然后开发了 Safari浏览器。
为了兼容性的考虑,于是苹果将 KHTML内核 UA中的 Mozilla、KHTML、Gecko统统继承了下来,变成了:
Mozilla/5.0(Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85.7(KHTML, like Gecko) Safari/85.5。
2008年,谷歌使用了苹果的 Webkit开发出了 Chrome浏览器。
和 Safari一样,Chrome浏览器也想兼容那些为 Safari专门编写的页面,于是就继承了 Safari的 UA,然后再加入自己的 UA:
M ozilla/5.0(Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13(KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13。
如果要问谁是“伪装之王”,那一定非 Edge莫属了。
2020年,微软转用谷歌的 Chromium内核开发 Edge浏览器,为了不再受兼容性的困扰,Edge浏览器几乎将所浏览器的 UA都加入了进来,于是就有了:
Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/90.0.4430.70 Safari/537.36 Edg/90.0.818.38
如果把 UA的伪装比作是“俄罗斯套娃”的话,我们会发现:
Edge伪装成 Chrome,Chrome伪装成 Safari,Safari伪装成 KHTML,KHTML伪装成 Gecko,Gecko和 IE又伪装成 Mozilla,最终,所有浏览器的 UA都以 Mozilla开头。
尽管 Mozilla作为一个浏览器而言,早已从市场上消失。
浏览器 UA的利用,通常与浏览器的功能性相关,但也会有其他的因素。
比如当年的“ 3Q大战”,QQ空间利用 360浏览器 UA中含有的“ 360SE”字样来屏蔽 360浏览器,而 360浏览器为了躲避封杀,则将“ 360SE”的字样从浏览器 UA中移除。
又比如一些视频网站,针对桌面浏览器和安卓手机浏览器,会推送视频贴片广告,而对苹果的 Safari浏览器则不推送。
还有如百度网盘,用一般的浏览器下载会大幅限速,而用自家的“百度云管家”则会小幅限速。
对于这类区别对待,我们有必要夺回浏览器 UA的控制权。
首先,我们检查一下当前使用浏览器的 UA,方法在地址栏中输入:
Chrome:chrome://version
Edge:edge://version
Firefox:about:support
又或者打开下面三个网站来检测:
然后,我们可以使用拓展 User-Agent Switcher and Manager来自定义浏览器 UA,拓展同时还支持“白名单模式”,可以对不同的网站使用不同的浏览器 UA。
又或者使用拓展 Header Editor来修改浏览器 UA。
它的优点在于多功能合一,可以省去安装一个专门的浏览器 UA拓展,支持 Chrome、Edge、Firefox三款浏览器。
就是要注意,使用完后要切换回默认的 UA哦。
说到底,浏览器 UA其实是“浏览器大战”的产物。
如果我们想要有一个更加畅通无阻的互联网,那么就很有必要去了解它。
而且,随着 Python和大数据的火热,「爬虫技术」和「反爬虫技术」的入门也都离不开浏览器 UA。
看完这篇文章后,相信你已经半只脚踏入这个领域了,至少在朋友面前装个 B已经是没问题了。
tbc角色可以转到轮回服务器吗
tbc角色不可以转到轮回服务器,只有60年代的角色才可以转到轮回服务器,进图TBC。当前服务器不升级到TBC版本,但玩家可以选择将角色转移到其他开启TBC的服务器上。
魔兽世界轮回服就是魔兽世界每12个月重置一次的赛季服,版本是60版本,魔兽世界“轮回服”美服公测的等级上限为30级,另外还针对了不少此前怀旧服中的通病做出了些许改变。
魔兽世界轮回服务器其他情况简介。
魔兽世界将开启一个每12个月重置一次的赛季服的消息,在整个圈子内引起了不少玩家的热议,很多人都觉得暴雪这是在“无限套娃”,或许等几年之后,这个赛季服都可以称之为“怀旧服之怀旧服”。而近日,备受争议的“轮回服”在美服正式公测。
根据暴雪发布的公告可以看出,这次魔兽世界“轮回服”美服公测的等级上限为30级,另外还针对了不少此前怀旧服中的通病做出了些许改变。譬如增加了矿点、草药点,另外还有PVP荣誉系统、战歌峡谷也同步启用。