浏览器的故事

很久很久以前有一个浏览器名字叫 NCSA Mosaic
很久很久以前有一个浏览器名字叫 NCSA Mosaic

紧接着也出现了一个 Mozilla 的浏览器 (Mozilla 的意思是 Mosaic 终结者)
后来 Mozilla 的正式发布版本是 Netscape 它把自己标称为Mozilla/1.0 (Win3.1)
由于 Netscape支持框架显示,后来框架在大家中间流行起来了,但Mosaic不支持框架。
所以网站管理员们则通过 User-Agent 判断,如果是Netscape浏览器则进入框架(html frame)的页面,如果不是Netscape 浏览器则进入没有框架的页面.

Netscape 没有风光多久,微软也推出了自己的 IE浏览器 。IE浏览器也支持 框架 但是很遗憾,网站管理员们不认识它呀,因为IE的 User-Agent 没有Mozilla 所有没有人理它。后来微软抓狂了,你们不就是只认识User-Agent 头里有 Mozilla 字符的浏览器么,于是宣称自己是“兼容Mozilla”的,开始模仿Netscape,把自己标称为Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)。这样一来 IE 也有了Mozilla (其实是伪装的...) 所以那些框架也能看到了.

后来随着微软把浏览器捆绑进自己的操作系统里一起卖,随就爆发了浏览器大战。结果大家都很清楚,Netscape失败了。而微软大胜了,至今微软的IE依然影响着 w3c 影响着所有浏览器。

Netscape 失败后重生为Mozilla 构造了Gecko,标称其为Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826,Gecko属于渲染引擎,表现优异。Mozilla开发了Firefox,标称为Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0,并且Firefox表现也非常优秀.

由于 Gecko 的优秀,网站管理员们会判断浏览器是否是 Gecko 的,如果是则把更先进 更漂亮页面显示给这个浏览器,其他浏览器就没有这个待遇了。

(比如现在的HTML5 , 如果我判断是你firefox的新版本则跳转到地址1,如果是ie则去地址2)

看到 Gecko 能看到这么漂亮的页面 Linux 的平台的孩子们很桑心,因为他们创建了基于KHTML引擎支持的Konqueror也跟 Gecko 一样优秀,但却不带有Gecko而被识别。结果Konquerer开始伪装自己“像Gecko”那样以看到更漂亮的网页,并标称自己为 Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD)(KHTML, like Gecko),这个世界就抽风了....

Apple开发了Safari,使用了KHTML,同时也增加了很多新特性,后来另起炉灶叫了WebKit,但是它有希望能够看到那些为KHTML编写的网页,于是Safari标称自己为Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5,就更加混乱了.

Google也开发了自己的浏览器Chrome,使用了Webkit,有点像Safari,希望能看到为Safari编写的网页,于是决定装成Safari。Chrome使用了WebKit渲染引擎,想装成Safari,Chrome宣称自己是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

最后:

IE伪装成 Mozilla  
webKit 伪装成 KHTML
KHTML 伪装成 Gecko

最后 opera 伪装成上面任何浏览器

同时所有的浏览器又都宣称自己是 Mozilla,

就是这样,把自己伪装得自己妈都不认识了,谁都不是谁的,谁也是谁的是。总之浏览器一塌糊涂.........

时间: 2024-11-08 19:52:18

浏览器的故事的相关文章

五大主流浏览器与四大浏览器内核

本文内容: 五大主流浏览器与其内核 移动端浏览器内核 浏览器内核优缺点 五大浏览器的故事 四大浏览器内核的故事 五大主流浏览器与其内核 浏览器最重要的部分是浏览器的内核.浏览器内核是浏览器的核心,可以分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎.最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎. 国内的浏览器(诸如360,QQ,搜狗)大多数用了第三方的内核,不同的只是外观以及一些装

比尔的村庄:创业是选择做赚钱的事,还是值钱的事?

赚钱的事与值钱的事,往往是两件事.创业的痛苦很大在于此. <穷爸爸富爸爸>里,有个故事. 一个村庄没有水,村长就委托两个年轻人,給这个村庄供水,村民向他们支付费用. 第一个年轻人艾德,马上买了两只大桶,每日奔波于10里以外的湖泊和村庄之间.艾德立即就赚到了钱. 另一个人叫比尔,自从签订合同后,他就消失了. 半年后,比尔带着一个施工队和一笔投资回到了村庄.过去的半年时间里,他做了商业计划,找到了投资,注册了公司,并雇用了项目施工管理的专业人员.之后,又花了一年多的时间,比尔修建了一套从湖泊通往村

浏览器 user-agent 字符串的故事

#cnblogs_post_body p{ text-indent:2em; margin-top: 1em; } 你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样? 故事还得从头说起,最初的主角叫NCSA Mosaic,简称Mosaic(马赛克),是1992年末位于伊利诺伊大学厄巴纳-香槟分校的国家超级计算机应用中心(National Center for Supercomputing Applications,简称NCSA)开发,并于1993年发布的一款

浏览器User-agent String里的历史故事

你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样? view source print? 1 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 2 Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; GT-I9300 Build/JZO54K) Apple

ASP.NET 表单验证方法与客户端(浏览器)服务器交互机制的故事

想到这个问题完全是一个意外吧,是在寻找另外一个问题答案的过程中,才对验证方法与浏览器服务器交互机制的关系有了清晰的认识. 先说下验证方法,验证方法分为前台验证和后台验证. 前台验证就是类似jQuery.Validate这类的插件,当然也可以我们自己写. 后台验证就是ASP.NET自带的验证控件,如RequiredFieldValidator. 记得初学.NET的时候,那会儿接触验证控件,也知道验证分为前台,后台.但是随着时间的推移,由于做的项目基本上都是公司内部使用的软件,比如OA.因为这种项目

为什么浏览器User-agent总是有Mozilla字样(User-agent String里的历史故事)【搜藏】

你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样? Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, l

webkit浏览器常见开发问题

前段时间有人问我一个简单的问题,html如何创建解析的? 我讲了一大堆,什么通过DocumentLoader, CachedResourceLoader, CacheResource, ResourceLoaderScheduler, ResourceHandle这些类一步一步的完成cache查找然后请求下载等等. 滔滔不绝,直到我调试xml解析时,我才发现好多问题都与理解的不一致,在分析源码的时候只了解了大体步骤.细节你真的清楚吗? 一.HTTP header 网页头请求 列举几个重要的 Re

CSS深入研究:display的恐怖故事解密(2) - table-cell

上集<CSS深入研究:display的恐怖故事解密(1) - display-inline>已经把display的属性列表拉出来溜了,发现在这个属性恐怖面貌其实都是脆弱的伪装.除了部分常用属性外,其他的都是传说哥.既然是传说哥,请不要迷恋.就让传说继续传说着吧.这次我们来搞定table-cell这个货.(table-cell:IE6.7不支持) table-cell这个家伙在国外的网站中偶有露头,天朝由于IE6.7这两个货泛滥成灾,难有发挥,那么,这个家伙到底能干些什么呢?先让我们来研究下ta

js调用打印机自动分页的功能(仅适用于IE浏览器)

做个功能需要打印的时候添加分页,哪怕是内容不够也需要分页. 浏览器上显示 打印预览是这样的: 模拟打印出来是这样的 都是显示的是5页,方法很简单.在需要分页的位置加上一行代码: <div class="PageNext"></div> css样式是这样的: .PageNext{page-break-after: always;} 以上就是实现的打印分页的功能. 另外有几个打印的常用方法记录一下. 1.调用打印的方法: wb.execwb(6,6) 2.调用打印预