HTML发展史

为什么要讲 HTML 发展史呢?

唐太宗告诉我们: 以铜为镜,可以正衣冠;以史为镜,可以知兴替;以人为镜,可以明得失。

那了解了 HTML 的发展史,可以知道什么呢?

答案是兼容

国内在 淘宝网停止支持IE6、IE7浏览器 之后,关于兼容的问题热度慢慢降了下来(其实,内因也是科技进步)

那 HTML 这个超文本标记语言,为什么会存在浏览器的兼容问题呢?今天我们就来聊聊 HTML 与 浏览器的那些个恩怨纠葛。

想要弄明白 兼容 的渊源,我们需要先了解下 HTML 和 浏览器 这两兄弟的发展史。

让我们先从一个小故事聊一下互联网发展的大致雏形:


话说啊,在刀耕火种的原始社会,北京人、山顶洞人、蓝田人 这几个部落要一起研究怎么提高部落生育率的问题。于是啊,三个部落的人各派出了一个代表团来研究这件事,并决定一起共享研究成果。

三个部落的代表团呢,都出差来到了一个叫荥州,这个荥州呢,离这三个部落的距离呢,都差不多,为了方便,就选择了这里。到这里之后,代表团的人发现:乖乖,这个研究不是三两天能够研究清除的,都小半年了,才刚起个头,马上都秋收了,得回家收秋啊!那研究咋弄啊?

这三个代表团里可都是三个部落里的能人啊,那这点小事儿,也没能难住他们。于是啊,他们决定啊,在荥州这个地方啊,弄个 根服务器,然后,扯网线到三个部落里边,那这样三个代表团就能分别在自己的部落里搞研究了,都把数据上传到这个服务器上,那就不用离开部落就能共享研究成果了呀,这效率不就高了,并且还能工作生活两不误,可dai。

那部落的电脑上的信息咋传输到服务器上呢?于是乎,代表团就定了一系列的 HTTP、TCP/IP 协议等等,来规定咋传输。

那大家的文章也不能乱写吧?要共享成果的话,我还得能看你的文章才行啊!

那怎么统一格式呢?好吧,那咱都按照 HTML 这个标准走吧,都按照这标准不能乱喽。

那怎么看别人共享的研究成果啊?那就用 浏览器 吧,文档不都是 HTML 格式的嘛,浏览器刚好可以按照 HTML 的标准去解析。

就这样啊,三个部落的代表团都扯着网线回家了。


以上呢,是个不具体的小故事,简要说说 HTML 和 浏览器 的关系。翻译成大白话就是:一个 规定 文档怎么写(HTML 文档);一个根据规定解析后显示文档内容(浏览器)。

接下来具体聊聊它们各自的发展史与恩怨情仇。

一, HTML 发展史

HTML的英文全称是 Hyper Text Markup Language,即超文本标记语言。HTML是由Web的发明者 蒂姆·伯纳斯·李(Tim Berners-Lee)和同事 Daniel W. Connolly 于1990年创立的一种标记语言,它是标准通用化标记语言SGML的应用。

其实对于 HTML 的发展史来说,就是以下几个时间点:

  • 1991年,第一个版本的HTML被提出,仅包含18个标签。
  • 1993年,HTML首次以互联网草案的形式发布。
  • 1995年,HTML 2.0发布,增加了表格、图像和表单等功能。
  • 1997年,HTML 4.0发布,增加了对CSS(层叠样式表)的支持、多媒体元素和框架等功能。
  • 1999年,XHTML(可扩展HTML)发布,作为HTML和XML的结合,支持XML的语法和结构。
  • 2000年,XHTML 1.0发布,进一步完善了XHTML标准。
  • 2004年,WHATWG(Web Hypertext Application Technology Working Group,Web超文本应用技术工作组)成立,致力于制定HTML5规范。
  • 2008年,W3C(万维网联盟)重新介入HTML标准,发布了HTML5的工作草案。
  • 2009年,XHTML 2工作组停止工作,标志着HTML5成为主流。
  • 2014年,HTML5成为正式标准。(2014年10月28日,W3C发布了HTML5的最终版。)

HTML的发展经历了从简单的标记语言到支持复杂 Web 应用的过程,随着技术的发展,HTML5已经能够提供丰富的多媒体功能、更好的性能和更强大的Web应用开发能力。

以上这些就是 HTML 发展的几个重要时间点,或者说是 HTML 的发展史。

二, 浏览器 发展史(三次浏览器大战)

1,Web 时代的序幕

1990 年,英国计算机工程师 蒂姆·伯纳斯·李(Tim Berners-Lee)开发出首个 Web 服务器与图形化 Web 浏览器"WorldWideWeb"(即"万维网")。该软件把 Web 互联网数据呈现在我们的眼前。互联网世界就此打开。

没错。HTML 之父 蒂姆·伯纳斯·李(Tim Berners-Lee) 还开发有浏览器。但他缺放弃了浏览器这一领域,因为在其发布之后,有人就提醒他可能会在后期陷入浏览器的纷争之中。蒂姆·伯纳斯·李 为了让 HTML 有更好的发展,将个人精力全部放到了 HTML 语言规范上来了。后续也正如 蒂姆·伯纳斯·李 朋友所说的那样,浏览器世界掀起了几场轰轰烈烈的大战。

到了 1993 年,网络发展突飞猛进。 大学、政府机关、企业都看到了开放互联网中的机会,每个人都需要新的计算机程序来访问网络。 这一年,美国国家超级计算机应用中心(NCSA)的计算机科学家马克·安德森(Marc Andreessen)开发了 Mosaic,这是第一款流行的 Web 浏览器。

NCSA Mosaic 易于使用,又可以在 Windows 计算机运行,让任何拥有 PC 的人都可以浏览早期的网页、聊天室、图库。Mosaic是 Mozilla Firefox 的早期版本,同时也是网景浏览器和微软IE浏览器的起源。

2,第一次浏览器大战

1)网景浏览器兴起

1994 年,安德森创立 Netscape 并公开发行了Netscape0.9,网络浏览器从试验室走向用户,取得了巨大成功。这也是第一次浏览器大战的开端。

同年12月15日,网景正式版本1.0,又名网景导航者,正式发布。它以先使用后付费的方式销售:软件你先用着,觉得不错你就买着继续用,如果觉得不行就不用。这一销售举措,再次使得网景大获成功,市场占有率迅速上升。

接下来的两年,网景公司迅速迭代升级了多个浏览器版本。最疯狂的时候,网景浏览器的市场份额接近百分之九十。就这样,网景募股上市当天收盘价高达75美元一股。网景从成立到成为世界上市值最高的互联网公司,只用了不到16个月。

浏览器的威力,不断显现。网景公司认为,我们只有浏览器就这么厉害,可总归要运行在别人的操作系统上面。网景就准备干一票大的,想搞一套基于网络的操作系统,深度集成网景浏览器。

2)微软应战:IE浏览器

微软的盖茨刚开始不看好网景,瞧不起浏览器这一亩三分地,一直在观望状态。这个时候,他们才意识到网景公司已经开始威胁到自己的地位了,简直是慌得睡不好觉。

怎么办?从头开始已经来不及了。微软动了歪脑筋,直接购买了网景导航者浏览器原型版本Mosaic的源代码(也就是马克·安德森在大学时期做的第一个版本的Mosaic浏览器)。然后,稍作修改后就发布了。

1995 年 8 月 16 日,微软推出了 IE 1.0 浏览器。同年 11 月发布了其第二个版本 IE 2.0。毫无疑问, IE 的这两个版本都几乎没有人使用,因为做的很烂。马克·安德森的网景已经进阶很久了,不是你IE两个版本可以追上来的。

微软毕竟是做操作系统的,windows是自已的核心。从 IE3.0 开始,微软把 IE 浏览器强行内置在了 Windows 的操作系统中。使用IE浏览器,你等于免费不掏钱。同时,微软也在商业市场发力,联合大型互联网服务提供商,美国在线、AT&T 等,让他们放弃网景导航者浏览器而改用 IE 作为首选浏览器。

3)网景失误,IE获胜

IE与windows捆绑,IE就相当于免费了。IE差是差了点,可好在不掏钱,谁根钱过不去啊!

网景也慌了,它自研操作系统,可那不是一天两天就能出来的。怎么办?如果网景浏览器功能上把IE逼成了小丑,IE不就完蛋了吗!于是网景浏览器开始大量增加新功能。

可问题是当年的电脑性能有限。网景干得太激进了,浏览器出现了性能不断下降、bug 频频出现、软件卡顿等等一系列问题。另一方的IE也在不断的改进,还不用花钱。客户也逐渐失去了对导航者浏览器的信心。

1997 年,微软IE更新至4.0版本后,性能已经与Navigator不相上下。四年内,IE 获得了75% 的市场份额,到 1999 年甚至达到了 99% 。

微软上下其手,明争暗戳,各种黑手阴招频出。同时,网景自身也犯了一系列错误,终于彻底被微软挤死了,最终在1998年被美国在线(AOL)以 42 亿美元收购。第一次浏览器大战以IE后来居上,网景的惨淡收场告终。

3,第二次浏览器大战

1)网景失败,IE躺平

2003年,IE的市场份额超过了八成,处于绝对垄断地位。

在IE6之后,IE团队事实上就 解散 了。你没看错,解散了!因为那时候的IE,打到了竞争对手网景,微软可以歇歇气了,滋生了懒惰情绪。IE5之前,IE每年进行一次大版本更新,而IE5到IE6用了两年的时间。更过分的是,从IE6到IE7居然过了5年的时间。

IE市场占有率非常高,从商业上来不值得再继续投入。IE属于捆绑消费,不能直接卖钱。继续投资IE没有直接对应的效益可言。所以我们不能刻意拔高那些所牛皮的公司,没有钱,也无所谓所愿景和使命感。

就像黄石公园的群鹿一样,没有了狼,鹿群就没有什么奋斗精神了。微软在浏览器方面,滋生了懒惰躺平精神,在IE6.0版本之后长达五年的时间里,微软对IE没有任何作为。

然而市场此时在悄悄孕育着强大的竟争对手。终究有一天,微软自食其果,IE全面落败,被迫退出历史长河。

2)网景涅槃重生,firefox虎口夺食

前面说过,一个强大的网景公司被微软明里暗里搞死了。它肯定是心有不甘的,临死之前,网景垂死挣扎了一下:把网景导航者浏览器的核心源代码开源了!

开源,也就意味着,浏览器的源代码,你有我有大家都有了。谁都可以依据它来改进和开发。

1998 年,一帮网景前老员工们一起成立了一个组织,其中就有 Netscape 创始人之一 Marc Andreessen 和 Netscape 高级工程师 Eric Bina 。他们合谋开发下一代的浏览器,这个组织就是 Mozilla.org,叫做 Mozilla。

前面说过,网景浏览器的代码存在诸多问题,技术架构陈旧,比如代码复杂、不稳定、安全性较差,难以满足当时互联网快速发展的需求。这些问题也让 Mozilla 组织决定采用新的代码架构和技术,重新设计和开发一个更加安全、稳定、快速和功能丰富的浏览器。

因此,Mozilla 组织开发了 Firefox 浏览器,其采用了全新的 Gecko 渲染引擎和 XUL 用户界面语言,使其在性能、安全性和可扩展性方面都有了显著的提升。网景浏览器的源代码几乎被全部抛弃。

2004 年 11 月 9 日发布了 Firefox 的第一个正式版本 Firefox1.0,即火狐浏览器。在随后的4年时间里,尽管IE的份额依然领先,Firefox也稳扎稳打,凭借几次大版本更新提升了浏览器的功能与先进性,又有google的神助攻,它从IE手中夺下了两成多的市场份额。firefox迅速成长,成为了当时市场份额排名第二的浏览器。

4,第三次浏览器大战

1)chrome浏览器崛起

如果说firefox虎头夺食,抢夺了IE两成的江山。那么后来的google就像是浏览器中的武松,firefox奋力争抢时,他开始走到景阳岗山下,喝酒吃牛肉,积蓄力量。待到时机成熟,就会将IE这只老虎棍棒斩落。

2006年,搜索引擎已经成熟,苹果在研发手机,谷歌安卓正在开发。各种趋势表明,互联网世界处于PC互联网向手机移动互联网的变革趋势中。这一点微软还在睡梦里面,毫不察觉。

2006年,谷歌邀请拉斯·巴克(Lars Bak)领导JavaScript引擎开发。

我们都知道,浏览器核心代码是渲染引擎和JS引擎。之前,JavaScript 是一门纯解释性质的动态脚步语言,浏览器一行一行地执行 JavaScript。巴克是Java HotSpot虚拟机的开发者,有着深厚的java虚拟机开发功底。他它使用了即时编译(Just-In-Time Compilation,JIT)技术,可以将JavaScript代码转换为机器代码并快速执行。巴克为首的团队称之为V8 JavaScript引擎。

搭载V8引擎的chrome浏览器,据说当时Javascript解析速度是IE的65倍之多,一经问世,顿时让IE成为了下载chrome浏览器的入口浏览器。

微软如梦方醒,一朝醒来,发现处于全面劣势。因为长江后浪推前浪,不仅chrome技术大幅领先,玩起谋略,chrome浏览器的称霸过程,比微软当年的策略更胜一筹。

首先,谷歌把Chromium内核开源,谁都可以基于这个内核开发自己的浏览器,且不用公布自己做了哪些改动。这个策略惠及了许多开发者,比如国内的比如QQ、360、UC大部分浏览器,都是基于Chromium内核开发出来的。

其次,谷歌拉拢扶植火狐的公司来打压IE,让fireFox浏览器把google成为了自己默认的搜索引擎。Mozilla有90%的收入都来自谷歌,当然愿意干了。这妙计有三国"联吴抗曹"之功效。

Chrome与Google账号捆绑,所有Android系统的手机也都内置了Chrome。这个是最重要的致命手段,善玩捆绑的微软,终于遇到了一个更会玩捆绑的。

2)IE浏览器倒下

互联网技术是飞速发展的,没有了专业团队和继续投资,IE开始爆出各种问题。

首先就是安全问题,IE不更新,各种安全漏洞越积越多。最后连微软自家的安全专家都建议大家不要把IE作为默认浏览器。

其次是IE的代码架构和技术也落后了,像是上个世纪的老爷车一样越跑越慢,还没法和最新的技术兼容,启动慢、易卡死之类的问题也就成了家常便饭。

逐渐地,用户越来越厌恶IE。2006年,IE6被国外机构评为"有史以来第八糟糕的科技产品",2011年,IE6再次进入"科技史上50种最糟糕科技产品"的榜单第11名。短短几年,在firefox和chrome的映衬之下,IE就彻底变成了人厌狗嫌的产品,唯一的作用,就是提供各种网络笑话。

IE也不是没有挣扎过,后续推出多个升级版本,但是都失败了。2022年6月15日,是个值得互联网纪念的日子。这一天,全世界互联网用户的噩梦 ------------ IE浏览器,正式宣告退出历史舞台。

为了纪念这个服役27年的浏览器正式死亡,一位韩国工程师甚至花了两千多元给它立了一块墓碑,上面写着的墓志铭是:"他是下载其他浏览器的好工具"。

3)Edge浏览器兴起

2015年4月,微软新开发的Edge浏览器,随着Win10登场了。最初的Edge是在EdgeHTML渲染引擎上构建的,性能不高,且由于开发环境薄弱和各种兼容性问题显得很鸡肋。

2018年,微软下定决心放弃自家引擎,转而采用更成熟、开源的Chromium内核。事实上代表微软服软,不再封闭。2020 年1月15日,微软发布了基于Chromium的新版Microsoft Edge。采用Chromium内核之后,Edge浏览器将直接兼容支持Chrome现有的所有扩展。

这一改变有了立竿见影的效果,微软有着Windows平台的天然优势,Edge在2023年4月的桌面端市场份额开始快速提高。借助自家windows平台的优势,微软稳住了浏览器市场,份额开始逐步上升。

4)firefox份额下降

前面说过,当初google的chrome浏览器没出来之前,让fireFox浏览器把google成为了自己默认的搜索引擎。

差不多十年中,火狐浏览器一直是谷歌的忠实盟友。依靠给谷歌送去搜索流量,Mozilla每年获得近三亿美元的收入,而谷歌依靠火狐浏览器的鼎力协助,后来一度斩获了全球搜索市场的九成。

既然google有了自己的chrome浏览器,那么这样就不太划算了。于是firefox与百度也有了一定的合作,将在全部中文版火狐互联网浏览器中内置百度搜索引擎。

chrome和edge浏览器的竟争,让firefox的份额开始下降。但firefox作为开源浏览器,广受开源社区的好评,在专业人士、数码爱好者和极客中用户很多,绝不会再走网景浏览器的灭亡的老路了。

5,一枝独秀(奇葩) Safari

Safari是一款由苹果公司开发的网页浏览器,是各类苹果设备(如Mac、iPhone、iPad、iPod Touch)的默认浏览器。Safari使用WebKit浏览器引擎。

Safari在2003年1月7日首度发行测试版,并成为Mac OS X v10.3与之后的默认浏览器,也是iPhone与iPad和iPod touch的指定浏览器。

Windows版本的首个测试版在2007年6月11日推出,支持Windows XP与Windows Vista,在2008年3月18日推出正式版,现已支持Windows 7。

2012年7月26日,随着苹果的"山狮"系统发布,Windows平台的Safari已经放弃开发。

所以,Safari 的市场份额,完全是靠着 自己的操作系统 来维持。其实,有些时候,主流浏览器兼容的 CSS,Safari 是不兼容的,但奈何苹果硬件的硬通性,有些时候,前端程序员不得不再处理关于 Safari 浏览器的兼容问题。

三,HTML 与 浏览器 恩怨情仇

前文小故事已经提到,HTML 是一种规范文档,只是来约束文档的书写规范的。注意,只是约束,并不是百分百的法律规定。

通过 浏览器 的发展史,不难看出,浏览器是资本必争之地了(目前为止我们还没有自研的浏览器)。

浏览器厂商的目标是获取更多的用户量,而 有些时候 HTML 的规范会限制其行为。前文大家应该看到 XHTML 2.0 胎死腹中,没能发布,原因就是当时 HTML 之父领导的 W3C 过于注重 HTML 与 XML 等的结合,XHTML 1.0发布之后,让 HTML 的标签等都很是严格,并且最主要的是 XHTML 2.0 计划不再兼容低版本的 HTML,这迫使各大浏览器厂商联合起来组建了 WHATWG 组织来脱离 W3C 的控制,最后 HTML 之父妥协,不再继续 XHTML 2.0 工作。直到 2014年 从发布 HTML 5 版本。

浏览器厂商获取更多用户量的一个手段就是不断的推出一些新的 CSS 样式,来稳住现有用户的同时开发新的客户。这也是前端程序员经常会写的 -webkit- 这些前缀的诱因之一。

浏览器厂商会遵照 HTML 的标准来解析页面,但也不是百分百遵守( 需要兼容的根本原因所在),会有阉割或者拓展。阉割掉的可能会永久阉割掉,也有可能在后续的浏览器版本中兼容;拓展的,有可能在后期会被 W3C 采纳,录入下一代的标准中。

其实,不少 W3C 的成员是任职于各大浏览器厂商的,一方面这些人是 HTML 标准的维护者,一方面他们又是 HTML 标准的创新者。

2014年10月28日 至今(2024年03月20日),将近十年时间了,HTML 没有发布新的版本也是因为其在不停的更新中。

相关推荐
秦jh_6 分钟前
【Linux】多线程(概念,控制)
linux·运维·前端
蜗牛快跑21319 分钟前
面向对象编程 vs 函数式编程
前端·函数式编程·面向对象编程
Dread_lxy20 分钟前
vue 依赖注入(Provide、Inject )和混入(mixins)
前端·javascript·vue.js
涔溪1 小时前
Ecmascript(ES)标准
前端·elasticsearch·ecmascript
榴莲千丞1 小时前
第8章利用CSS制作导航菜单
前端·css
奔跑草-1 小时前
【前端】深入浅出 - TypeScript 的详细讲解
前端·javascript·react.js·typescript
羡与1 小时前
echarts-gl 3D柱状图配置
前端·javascript·echarts
guokanglun2 小时前
CSS样式实现3D效果
前端·css·3d
咔咔库奇2 小时前
ES6进阶知识一
前端·ecmascript·es6
渗透测试老鸟-九青2 小时前
通过投毒Bingbot索引挖掘必应中的存储型XSS
服务器·前端·javascript·安全·web安全·缓存·xss