返回列表

转载:下一代Web标准 HTML5之前世今生

默认分类 2014/11/30 09:01

http://www.e800.com.cn/articles/2012/0420/507407.shtml

【e800综合】HTML是World Wide Web上统一的语言,这些容纳在尖括号里的简单标签,构成了如今的 Web。使用它所提供的标签,人类已经创建了令人惊奇、姿态万千的超链接的文档网络。诸如Amazon、eBay、Wikipedia以及个人博客,无一不是HTML的杰作。本文讲述了 HTML这门Web标记语言的发展简史。下面让我们来看看[HTML5](http://search.e800.com.cn/HTML5 "HTML5\")——下一代Web开发标准的前世今生。

在发明Web的同时,Tim Berners-Lee先生创造了HTML(HyperText Markup Language,超文本标记语言)。1991年,他编写了一份叫做 “HTML 标签”的文档,里面包含了大约20个用来标记网页的HTML标签。他直接借用SGML的标记格式,也就是后来我们看到的HTML标记的格式。

从IETF到[W3C](http://search.e800.com.cn/W3C "W3C\"): HTML4之路

HTML 1这个版本实际上是不存在的。最早的HTML官方规范,是由IETF(Internet Engineering Task Force,因特网工程任务组)发布的HTML 2.0。这一规范中的许多特性,都是在已有实现的基础上归纳总结出来的。比如说,1994年居于市场领导地位的Mosaic浏览器提供了一个<img>标签,作者可以通过它在自己的文档中嵌入图像。后来,img元素就出现在了HTML 2.0中。

W3C(World Wide Web Consortium,万维网联盟)继IETF之后成为HTML后续标准的制定者,其官方网站是http://www.w3.org。20世纪90年代中 期以后,W3C对HTML进行了几次升级,直至1999年发布HTML 4.01。至此,HTML到达了它的第一个拐点。

[XHTML](http://search.e800.com.cn/XHTML "XHTML\") 1: 符合[XML](http://search.e800.com.cn/XML "XML\")标准的HTML

HTML在HTML 4.01之后的第一个修订版本就是XHTML 1.0,其中X代表 “eXtensible”(扩展),当然也有人将之解读为 “eXtreme”(极端)。XHTML 1.0是基于HTML 4.01的,并没有引入任何新标签或属性,这两个规范唯一的差别就是对HTML的语法作出了不同的规定。HTML给予了作者最大的自由度,他们可以按照自己的意愿去写元素和属性,但XHTML要求作者遵从XML规则;XML是W3C大多数技术规范的基础,是一种更为严格的标记语言。语法规则变得更严格了,这本身没有什么坏处。新规范的目的就是让作者按照统一的风格来编写标签。此前的标签和属性可以是大写、小写,或者任意大小写字母的组合,而有效的XHTML 1.0文档则要求所有标签和属性必须一律小写。

XHTML 1.0发布的时候恰逢浏览器普遍开始支持CSS。开发人员意识到了[Web标准](http://search.e800.com.cn/Web%E6%A0%87%E5%87%86 "Web标准\")的出现,特别是在Web标准项目(The Web Standards Project)的倡导下,XHTML规定的这种更严格的语法被看成是写标记的“最佳实践”。

W3C推出XHTML 1.1

虽然XHTML 1.0只不过是用XML来重新表示的HTML,但XHTML 1.1却是真正的、纯粹的XML。这意味着不能以text/html这样的MIME类型来提供XHTML 1.1文档。可是,如果有作者以XML的MIMI类型(application/xhtml+xml)来发布文档,那么当时世界上最流行的Web浏览器——Internet Explorer,又无法呈现该文档。看起来W3C好像已经开始与日常的Web发布脱节了。

出力不讨好的XHTML 2

W3C在接管HTML的时候,HTML的版本已经到了4。现在,他们又着手开发XHTML 2,旨在把Web引向建立在XML之上的无比光明的美好未来。

虽然XHTML 2的名字听起来与XHTML 1非常类似,但它们的差别却非常之大。与XHTML 1不一样,XHTML 2与既有的Web内容都不兼容,甚至就连以前版本的HTML都不兼容。说白了,XHTML 2就是要成为一门纯粹的语言,与以前规范的邋遢历史没有任何干系。

WHATWG:与W3C决裂

W3C 闭门造车的作风引起了一些人的不满,一股反抗势力在W3C内部逐步壮大。W3C热衷于从理论角度构建纯净的标准,却无视Web设计人员的需求。

2004年的一次工作组会议成了矛盾激化的导火索。伊恩•希克森(Ian Hickson)——当时还在Opera Software效力——建议以支持创建Web应用为目标来扩展HTML。这个建议被驳回了。来自 Opera, Apple, 以及 Mozilla 的代表开始表达反对声音。2004年,Opera 的 Ian Hickson 提议在 HTML 基础上进行扩展以适应新的 Web 应用,该提议遭到 W3C 的拒绝。于是,他们自发组织成立了Web Hypertext Application Technology Working Group(Web超文本应用技术工作组),简称WHATWG。

从Web Apps 1.0到HTML5

从一开始,WHATWG的工作方式就与W3C截然不同。W3C采取基于表决的方式:提出议题、讨论议题,然后投票表决。而在WHATWG,同样会提出和讨论议题,但哪些特性可以写入规范的最终决定权在编辑手中。这个编辑就是伊恩•希克森。表面上看,W3C的流程更民主也更公平。但实际上,政治博弈加上内部争论,经常会导致流程停滞不前。而在WHATWG,任何人都可以自由地发表意见,但负责拍板的则只有编辑一个人,因此工作效率明显高很多。其实编辑也并非拥有绝对的权力:一个仅由受邀人员组成的指导委员会可以质疑编辑的偏执做法。

最初,WHATWG的大部分工作被分为两个规范:Web Form 2.0和Web Apps 1.0。这两个规范都是在HTML的基础上扩展而来的。后来,这两个规范又被合并到一起,简单地称作HTML5。

再次联手

在WHATWG开发HTML5期间,W3C继续制定XHTML 2规范。如果说XHTML 2规范的制定速度很快那是忽悠人的。实际上,别提有多慢了。

2006年10月,Web之父Tim Berners-Lee发表了一篇博客文章表示,从HTML走向XML的路是行不通的,几个月后,W3C组建了一个新的HTML工作组,他们非常明智地选择了WHATWG的成果作为基础。这一转变带来一些困惑,W3C同时进行这两套规范,XHTML2和HTML 5(注意,W3C的HTML 5在5之前有个空格,而WHATWG的HTML5则没有空格),而WHATWG也在进行着同样的工作。

XHTML已死

这一混乱局面到了2009年开始变得清晰,W3C宣布终止XHTML 2的工作,这是一份关于 XHTML 2的迟到的讣告。这一消息被那些XML的反对者视为珍宝,他们借此嘲笑那些使用XHTML 1规范的人,然而他们似乎忘记了,XHTML 1和XHTML 2是截然不同的东西。于此同时,XHTML 1规范的制定者担心,XHTML 1中的严格语法规范会被HTML5弃用,这种担心后来证明是多余的,HTML5既支持松散语法,也支持XHTML 1般的严格语法。

HTML5时间表

HTML5的现状是,它不再象以前那样让人困惑,然而仍不够明朗。有两个组织在同时制定它的规范,这两个组织有着完全不同的行事风格,WHATWG是先买后尝,W3C是先尝后买,他们形成了一个不太靠谱的联姻,最终人们必将面临一个 HTML5还是HTML 5的问题。更让开发者困惑的是,他们什么时候才可以试水HTML5。

在一次访谈中,Ian Hickson提到了2022,表示要到那时HTML5才会形成"推荐标准",此话一出,立刻招来Web设计者们的愤怒,尽管他们不知道推荐标准时什么意思,但他们明白,2022已经是猴年马月的事了。这还不算,更重要的是,这个推荐标准涉及两套规范,考虑到HTML5标准的规模,这个日期还是太乐观了,毕竟,各大浏览器以往对既有标准的兼容并不遂人意,想当初,IE花10年才接纳abbr这个标签。

2012年,HTML5会被接纳为候选标准,这将是HTML5真正开始发力的日子。对Web开发设计者来说,这并不重要,重要的是浏览器的支持,就像CSS 2.1,当有浏览器开始支持这一规范的时候,就有开发设计者在使用了,倘若必须等到所有浏览器都支持才开始入手,恐怕我们现在还在等待中。

HTML5也一样,并不会有一个时间表,宣布HTML5已经准备妥当,相反,我们会先开始使用它的部分功能,HTML5并不是一个从零开始全新的东西,它是旧的 HTML标准的改进,事实上,不管你正在使用的HTML是哪个版本,你已经在使用 HTML5了。