我来从HTML的历史聊聊他们3者的差别。
在HTML的晚期发展中,W3C成立之前,许多国际标准的制订都是在应用程序的开发人员们相互探讨的情形下顺利完成的,比如说HTML 2.0, 3.2直至4.0, 4.01,这些标准绝大部分都是简而言之的retro-spec,即先有同时实现后有国际标准。在此种情形下,HTML国际标准不是很规范化,应用程序也对HTML页面中的严重错误十分包容。这如此一来又导致了HTML译者写下了大批的所含严重错误的HTML页面。据传,如今web上99%的页面都所含HTML严重错误。
W3C随即意识到了那个难题,并认为这是网络的两个关键性难题,应该理清。为了规范化HTML,W3C紧密结合XML制订了XHTML 1.0国际标准,那个国际标准没增加任何人捷伊tag,只是按照XML的明确要求来规范化HTML,并表述了两个捷伊MIME type,application/xhtml+xml。W3C的本意是对那个MIME type应用程序要实行强严重错误检查和,既如果页面有HTML严重错误,要是显示严重原始数据。但由于已近的web页面中已经有了大批的严重错误,许多开发人员婉拒选用捷伊MIME type。W3C迫不得已,在XHTML 1.0的国际标准之后加了两个第三章C,允许开发人员选用XHTML句法来写页面,同时选用旧的MIME type,application/html,来递送页面。那个旧的MIME type不能促发应用程序的强严重错误检查和。这是他们今天看到的情形,许多网站声称自己严格遵守XHTML 1.0国际标准,那或者说是说,他的页面时用了XHTML句法,但并不能确保完全没严重错误。要校正XHTML有没真正见效,需要查阅web伺服器选用何种MIME type来递送页面的。
W3C随即在XHTML 1.1中中止了第三章C,即选用XHTML 1.1国际标准的页面必须用捷伊MIME type来递送。只好那个国际标准并没许多人选用。此种情形反之亦然发生在仍未顺利完成的XHTML 2.0身上,它明确要求强严重错误检查和,只好没人选用。XHTML的故事情节也告诉他们,有时先有国际标准再来同时实现,是没错的。
有了XHTML的经验教训,WHAT Working Group和W3C在制订新一代HTML国际标准,也是HTML5的时候,就将向后相容作为了两个很重要的准则。HTML5的确导入了许多捷伊优点,但它最重要的两个优点是,不能break已近的页面。你能将任何人已近的页面的第二行换成<!DOCTYPE html>,它就成也两个HTML5页面,并且能就算在应用程序里恒定的展现。