HTML5 简史

1991年: 初版

  • 在1980年,伯纳斯-李提议并构造了 ENQUIRE 系统的原型,是一个给 CERN 的研究员们使用和共享文档的系统。
  • 1989年,伯纳斯-李写了一份备忘录,提出建立一个基于互联网的超文本系统。同年和另外一个工程师一起进行联合资金申请,但是这个项目并没有被 CERN 正式通过。
  • 1991年底的时候,伯纳斯-李公开了一份“HTML Tag”的文档,里面描述了组成HTML初始版本的18个元素。

第一次关于 HTML 的公开描述

1993年: 第一份草案

  • 1993年,伯纳斯-李向 IETF 提交了 HTML 规范的第一份提案。
  • 六个月后草案过期了,但是值得注意的是草案对 Mosaic 浏览器自定义的内置 images 标签的确认,反映了 IETF 在成功的原型基础上确立标准的哲学。
  • 由于 IETF 草案要求实现,所以 HTML 草案引用了 Mosaic,而 Mosaic 呢?如果没有 HTML 也是没有价值的,所以浏览器和 Web 标准之间的共生关系从一开始就在驱动网络。

1994年: 第一份规范

  • 然后在1994年初,IETF 成立了第一任的 HTML 工作小组(HTMLWG),在1995年完成了 HTML2.0,将来的实现都应该把这个作为标准来实现。
  • 但是由于各种相互竞争的利益关系,在 IETF 主持下的 HTML 标准的发展出现停滞。

1994年: W3C 成立

  • 同样也是在1994年,Tim创建了 W3C,他的使命是“通过制定规范和指南以引领 World Wide Web 充分发挥其潜力,以确保 Web 能够长期增长。”
  • W3C HTMLWG 和 IETF HTMLWG 做的事情是一样的,但是这两个标准实体并没有并行运转多长时间。1996年9月,在对HTML2做了一系列增补以后,IETF HTMLWG 宣布关闭,随后针对 HTML 标准的工作就移交给了 W3C。

1997.1: HTML3.2

  • W3C 接手 HTML 几个月后,在1997年1月发布了 HTML3.2.
  • 把数学公式部分整个丢弃了(后来独立发展成MathML),并且采纳了 Netscape 大部分的视觉化标记。

1997.12: HTML4.0

  • 同样是在1997年,W3C在这一年的12月份发布了HTML4.0。
  • 这次发布提供了规范的三种变体:
    • Strict,过时的元素被禁止;
    • Transitional,过时的元素是允许的;
    • Frameset,基本上只有frame相关的元素允许使用;
  • HTML4.0 采纳了许多浏览器特定的元素类型及属性,但是同时也把 Netscape 的视觉化标记标记为过时的寻求淘汰; 赞成使用样式表; 同时在1998年4月对HTML4.0进行了微小的修订,没有增加版本号。

1999.12: HTML4.01

  • 1999年12月份,HTML4.01 发布。
  • 像 HTML4.0 一样提供了三种变体,并且他的最终错误修订版在2001年的5月12日发布。

2000.5: ISO 国际标准

  • 在2000年5月份,HTML 成为了 ISO 国际标准(基于 HTML4.01 Strict)。
  • 然后直到2008年中,HTML4.01 以及ISO/IEC 15445:2000都是HTML的最新版本。

1998.12: XHTML1.0

  • 在 HTML4.0 发布以后,W3C 就立刻解散了 HTML 工作小组。不到两个月以后,一个单独的 W3C 工作小组发布了 XML 1.0。三个月后,W3C 举办了一个主题是“塑造 HTML 的未来”的研讨会,结果是“与会者一致认为进一步扩展 HTML4.0 比较困难,同样地,将 HTML4.0 转化成一个 XML 应用程序也很困难。最后的建议是,在一套 XML 标签组的基础上,创造崭新的下一代 HTML”。
  • W3C 重新成立了 HTML 工作小组来创建这一套“XML标签组”,在1998年12月起草了一份临时规范,只是简单的用 XML 重新表达 HTML,而不增加任何新的元素或属性。这份规范后来被称为“XHTML 1.0”。

XForms

  • XHTML1.0 的临时规范之后,针对 Web 表单,同一个 HTML 工作小组发表了 XHTML 扩展表单的初稿,几个月后重命名为“XForms”,并成立了自己专门的工作小组。
  • 下一代表单针对早期版本的 HTML 所设计的浏览器不提供后向兼容性。目标是提供一个干净的全新表单模型(XHTML扩展表单)。

2002年: XHTML 2.0

  • 2002年的时候,W3C发布了 XHTML2.0,是对 XHTML 的一个完全的重新思考,这一次很少关注映射 HTML4 的问题,更多的是放在了可扩展性方面。
  • XHTML2.0 是一个工作草案,更像是一个新的语言而不是 XHTML1.x 的升级。 XHTML2.0 的完败在于他不光跟 HTML4 不兼容,同时跟 XHTML1.0 还不兼容。
  • 大家可能从未听说过 XHTML2.0,因为所有的浏览器厂商都在竭力避免去实现他。

总结一下

之前 HTML 出现格式错误,浏览器仍然可以显示;现在 XHTML 要求浏览器执行严苛的错误处理,XHTML 出现哪怕一个错误,也要求 Web 浏览器停止继续处理并给用户显示报错信息;

由于互联网上99%的页面至少都存在一个错误,如果浏览器严格执行这个标准的话,用户获得错误提示的可能性几乎一定存在。

同样 XForms 也强制使用严苛的错误处理方式,W3C 认为格式错误是 Web 的一个根本问题,想着手对其纠正。

2004.06: WHAT工作小组的诞生

XHTML2.0 几乎每什么进展,而且 W3C 针对是否应该继续发展 HTML 和 CSS 两次投票都没有通过,而且也不打算进行第三次非正式投票。

那些提议发展 HTML 和 HTML 表单的人只剩下两种选择:放弃,或者在 W3C 之外继续工作。

他们选择了后者,注册了 whatwg.org 域名,然后在2004年6月,WHAT 工作小组诞生了。

WHATWG 介绍

在 WHAT 后来的的一份 FAQ 中提到“ Mozilla 和 Opera 越来越担心 W3C 的以 XHTML 为方向,对 HTML 缺乏兴趣,而且对现实世界的需求明显无视。所以这些组织共同的使命就是解决这些问题,于是 WHATWG 因此就诞生了” 。

WHAT 是 Web 超文本应用技术的缩写。WHATWG 主要由浏览器厂商(Apple,Mozilla基金会,以及Opera)和有关各方成立。

为了不抹杀十多年以来在 HTML 上的成果,以及不让99%的现有网页变得无法可用,WHAT 工作小组决定采用不同的方法:将浏览器实际所用的那些”宽容“的错误处理算法文档化。

虽然花了几年的时间,但是 WHAT 工作小组还是将”如何以兼容现有 Web 内容的方式解析 HTML “文档化了。最终的算法完全没有强制 HTML 停止处理并显示错误信息的步骤。

WHATWG 的其他工作

  • Web Form 2.0规范 – 给HTML表单新增了一些控件类型;
  • Web Application 1.0规范草案,包含一些重要的新特性,例如支持直接模式绘图的画布(Canvas),以及对音频和视频的无需插件的原生支持。Web App 1.0是对HTML的一种渐进式的改进,人们很快就把他作为HTML5来引用。
  • 大家可能要问,HTML不是由W3C负责的吗?没错,确实是他们。当年不一样是由IETF负责的吗?对吧。

2006.10: 回到W3C

数年时间之中,W3C 和 WHATWG 基本无视对方的存在。WHATWG 着眼于 Web 表单和新的 HTML 特性,W3C 的 HTML 小组则忙于 XHTML 的2.0版本。

直到2006年10月,WHAT 工作小组明显已经取得重大成果,而 XHTML 2还煎熬在草稿之中,而且没有任何的主流浏览器为他提供实现。

2006年10月中,Tim宣布 W3C 将和 WHATWG 合作来开发下一代的 HTML,他表示:HTML应当逐步进化;一下子切换到XML不太现实;以及新的HTML小组将渐进地同时改善HTML和XHTML;此外就是涉及到无处不在的表单的工作。

新组建的W3C HTML 工作小组的最初的几个决定之一就是将“Web Applications 1.0”更名为“HTML5”。随后W3C就解散了XHTML 2工作小组。

HTML5 的标准化过程

前面我们提到的向后兼容的规范和 Web Application 1.0 合并组成了 HTML5 的初版,并且在2007年,这份 HTML5 规范作为 W3C 新的 HTML 工作小组的起点被接纳。

WHATWG 并没有像 IETF 一样简单的把 HTML 的控制权移交给 W3C,而是继续在上面工作。虽然可以跟 W3C 紧密工作,但是和 W3C 的关系还是比较复杂的。

新的工作小组在2008年1月22日发布了规范的第一个公开工作草案。HTML5 已经被浏览器部分的实现了,虽然还没有达到最终建议的状态。

目前 HTML5 草案规范在2011年5月作为last call working draft发布,目前把2014年作为W3C Recommendation的一个目标时间点。

2012.07: W3C 和 WHAT 分家

2012年7月,WHATWG和W3C决定分家。

W3C继续HTML5规范的工作,专注于一个单一的明确的标准(A single definitive standard),被认为是WAHTWG的一个snapshot。

而 WHATWG 则继续把 HTML5 作为一种“Living Standard”。Living Standard的概念是从来不complete,并且总是会一直被更新和改进。

参考

回复