编程爱好者联盟 2016-11-09
前言:
在学习thymeleaf的时候,被提醒了“很多人只是知道HTML怎么用,但却并不明白HTML的发展历程,然而这对于学习WEB是很重要的”,然后就被推荐了一篇文章,名叫“From HTML to HTML (via HTML)”。本想着随便看看,谁知却被这篇文章吸引了。近20年来,变迁一直在发生,而我却浑然不知,“除了我之外会不会还有很多人想了解这些历史的呢?”这样想着,就把这篇文章简略地翻译了一下(因为英文能力有限,太过麻烦的地方又不大感兴趣,呵呵),如果能为感兴趣的人抛砖引玉,楼主就很满足了。
文章不长,重点不在技术探讨,而是从总体上回顾了一下WEB标准的发展史。专业术语不多,叙述相当有趣,纯粹当成杂文看就可以。
接下来是原文地址:http://www.thymeleaf.org/doc/articles/fromhtmltohtmlviahtml.html
//////////////////////////////////////////////////////分割线/////////////////////////////////////////////////////////////////////
HTML的出现:
90年代,W3C组织从SGML语言扩展出了HTML语言规范
DOM技术的出现:
90年代末期,浏览器商家相互之间竞争十分激烈,他们想要为用户提供更多更酷的功能,
其中最令人兴味盎然的一个主意就是通过浏览器脚本语言(javascript之类的)操作HTML
标签树来实现页面的动态操作(也就是DOM技术)
这个时候问题被暴露了出来,由于html本身规则松散,以致于标签的位置和排列不同,会导
致不同浏览器上出现不同的DOM解析结果。在这样的情况下,如果你想开发跨浏览器的
WEB应用,简直难于登天
更糟糕的是,浏览器对待html的作者很宽容,它会自动帮你纠正html中的错误,这
鼓励了html作者创建更多糟糕的html代码。——这形成了一个恶性循环,结果就是每个
浏览器都在用不同的方式纠正这些错误(跨浏览器应用几乎不可能实现),万岁!
XML的出现:
xml ,一个严谨的标记语言,作为一个中立手段,目的是弥补html的缺点,严谨的
语法规范使得DOM解析更加严谨,实现了跨平台的通用性
但是实际的状况是,由于html并不是由xml发展而来的,所以xml和html还是相对独立
的,xml没有从根本上解决html的问题
另一方面,人们意识到xml的好处,它使得web文档具有更好的扩展性和可操作性,
在这种背景下,w3c提出了xhtml标准
XHTML的出现:
xhtml 要求人们把web写的符合xml规范,比如标签必须闭合,还有属性必须被包围
在引号里面
xtml规范通常被认为是很好的一个进步,因为增强了浏览器的规范性,给html
错误留下了更少的空间,更利于web 页面的转换和自动处理
但同时xtml从xml引进了一个有争议的概念,那就是严格的错误处理机制,这意味着所有的
xml翻译器(通常被包含在浏览器里),如果遇到错误应当立即运行失败。因此,web页面的
作者必须完成一个完美的页面代码或者接受浏览器根本无法显示页面的这个事实
同时因为MIME(多用途电子邮件)的出现迫使web服务提供者使用xhtml。所以,人们都觉
得只要等待所有的浏览器支持xhtml就好了,当一切看起来都那么美好的时候...人们期待的事
却没有发生...
那是因为某个浏览器拒绝支持xhtml文本类型...猜猜那是谁...没错,就是IE
当你使用旧版本的IE浏览器(IE 11以前)访问XHTML网页的时候,会显示一个下载
对话框,这意味着你的用户根本访问不了你的页面,等到这个问题被修正的时候已经
太晚了
XHTML的妥协与彷徨:
幸运的是,或者可以说不幸的是,XHTML 1.0 规范追加了一点,那就是我们可以在
XTML网页里使用旧版本的htm代码——为了方便过渡。事实上我们这些年一直都在做这
样的事:创建XHTML网页,然后在里面写html内容。鉴于XHTML 1.0规范发布于2000
年,也就是说我们转型转了好长一段时间(到今年为止共16年)
离开了严格的错误处理机制——html的语法错误浏览器会帮你纠正——如果你知道浏览器
会帮你修正所有的错误你就不会轻易去改动你的网页代码,这也就意味着名为html的
恐怖故事还在继续...
2002年,为了迫使网络浏览器支持xhtml+xml应用,XHTML 1.1 规范移除了兼容HTML
的一项,但这并没有起到效果,仅仅使得XHTML 1.1变成了像尼斯湖水怪一样的虚构怪
物,几乎没有人用过它
2009年,W3C重新同意在XHTML1.1 规范里使用html,但这也已经太迟了
变革的前夜:
在某些时间点(特别是2004年),一些浏览器开发者发觉XHTML规范发展的太慢了,
不能很好地解决日益增长的网络需求(对视频,音频,更丰富的应用程序接口的需求),
而这个时候W3C组织正致力于提出一种更严格的规范,可以清理过去遗留的大量不符
合规范的丑陋代码
浏览器开发者想要更好的视频,音频,和本地存储的处理能力,和更先进的表单处理机制,
实际上这些功能在浏览器里可以很方便地添加,但是他们不想再走上各树旗帜的老路,他们
需要的是可以满足这些需求的一个标准
但发展现有的XHTML标准出现了一个问题,那就是现在大量的WEB应用还在使用传统的
HTML,如果这些很酷的新功能由超严格的XHTML来定义,这些遗留下来的WEB应用就没
法使用了。每个人都希望WEB变得更通用更规范化,可这不能以舍弃过去几百万WEB工
作者的劳动成果为代价
所以这些开发者(以及其他人)希望W3C组织找到一个发展HTML的途径,既可以使现存的
HTML和XHTML代码继续工作,同时可以为WEB应用提供强大的新功能——还有很重要的一
点——可以明确错误解决方案
最后的一点意味着,我们不应该因为某一处代码的错误导致操作失败,不同的浏览器
应通过某种规范自动纠正它们,然后做出相同的应答——转换HTML代码使之符合XML规
范之类的,使得他们能更好地跨浏览器工作。所以,即使你不喜欢新的事物,你手头
还有成吨的老旧HTML代码,你也可以参与到这场狂欢——看看这个老旧的HTML网页吧,
让我们为它加上点视频。一切听起来都那么的合乎情理
分裂的导火索与HTML5的蓝图:
但是,2004年,W3C对此的回复听起来并不大好,他们回绝了这个建议,并打算继续发展
更严格的XHTML,在他们的眼里HTML已经死了,他们没有理由去复活已经死掉的东西。
然后,XHTML2.0才应该是未来的主流!
这件事直接导致了分歧,“HTML新概念”的拥护者们,来自Opera Software,Mozilla基
金,苹果公司的一群人,组成WHATWG,离开了W3C开始独立寻找新的出路——那就是
我们今天所熟知的HTML5
W3C的妥协与WEB的未来:
最后,到了2007年,W3C为下一代HTML创立了一个工作组,接受与WHATWG联合并决定采
用HTML5作为以后的规范。到了今天,W3C和WHATWG为了HTML5的发展而联合起来。2009
年W3C让XHTML2.0胎死腹中,关闭了相关的工作组
至此,HTML5成为了未来web的唯一标准
//////////////////////////////////////////////////////分割线/////////////////////////////////////////////////////////////////////
所以 HTML5 到底是什么?
HTML5是一套仍在发展中的标准,由HTML4和XHTML发展而来,致力于:
1.远离面向文档的设计理念,向面向应用的设计理念靠拢,提供更强大的多媒体操作能力;
2.实现从HTML和XHTML到HTML5的无痛过渡,很少甚至不必改动原有的代码;
3.提供一个处理错误的标准模式,使得所有的浏览器的错误处理结果可被预测;
//////////////////////////////////////////////////////分割线/////////////////////////////////////////////////////////////////////
个人简略翻译,更多详细内容请参考原文
END