HTML的發(fā)展歷史!
發(fā)表日期:2015/7/31 14:28:31 文章編輯: 瀏覽次數(shù):2536
HTML最早是從2.0版開始的。從來(lái)就沒(méi)有1.0版。如果有人告訴你說(shuō),他最早是從HTML 1.0開始使用HTML的,那他絕對(duì)是在忽悠你。從前確實(shí)有一個(gè)名叫HTML Tags的文檔,其中的部分標(biāo)簽一直用到現(xiàn)在,但那個(gè)文檔并非官方的規(guī)范。
使用標(biāo)簽、尖括號(hào)、p或h1,等等,并不是蒂姆·伯納斯-李首創(chuàng)的想法。當(dāng)時(shí)的SGML里就有了這些概念,而且當(dāng)時(shí)的CERN(Conseil Europeen pour la Recherche Nucleaire,歐洲核子研究委員會(huì))也在使用SGML的一個(gè)特定的版本。也就是說(shuō),即便在那個(gè)時(shí)代,他也沒(méi)有白手起家;這一點(diǎn)在HTML后來(lái)的發(fā)展 過(guò)程中也體現(xiàn)了出來(lái):繼往開來(lái)、承前啟后,而不是另立門戶、從頭開始。
換句話說(shuō),這篇名為HTML Tags的文檔可以算作HTML的第一個(gè)版本,但它卻不是一個(gè)正式的版本。第一個(gè)正式版本,HTML 2.0,也不是出自W3C之手。HTML 2.0是由IETF,因特網(wǎng)工程任務(wù)組(Internet Engineering Task Force)制定的。在W3C成立之前,IETF已經(jīng)發(fā)布了不少標(biāo)準(zhǔn)。但從第三個(gè)版本開始往后,W3C,萬(wàn)維網(wǎng)聯(lián)盟(World Wide Web Consortium)開始接手,并負(fù)責(zé)后續(xù)版本的制定工作。
20世紀(jì)九十年代HTML有過(guò)幾次快速的發(fā)展。眾所周知,在那個(gè)時(shí)代要想構(gòu)建網(wǎng)站,可是一項(xiàng)十分復(fù)雜的工程。瀏覽器大戰(zhàn)曾令人頭疼不已。市場(chǎng)競(jìng)爭(zhēng)的 結(jié)果就是各家瀏覽器里都塞滿了各種專有的特性,都試圖在專有特性上勝人一籌。當(dāng)時(shí)的混亂程度不堪回首,HTML到底還重不重要,或者它作為Web格式的前 景如何,誰(shuí)都說(shuō)不清楚。
從1997年到1999年,HTML的版本從3.2到4.0到4.01,經(jīng)歷了非??斓陌l(fā)展。問(wèn)題是到了4.01的時(shí)候,W3C的認(rèn)識(shí)發(fā)生了倒退, 他們說(shuō)“好了,這個(gè)版本就這樣了,HTML也就這樣了;HTML 4.01是HTML的最后一個(gè)版本了,我們用不著HTML工作組了?!?/p>
W3C并沒(méi)有停止開發(fā)這門語(yǔ)言,只不過(guò)他們對(duì)HTML不再感興趣了。在HTML 4.01之后,他們提出了XHTML 1.0。雖然聽起來(lái)完全不同,但XHTML 1.0與HTML 4.01其實(shí)是一樣的。我的意思是說(shuō),從字面上看這兩個(gè)規(guī)范的內(nèi)容是一樣的,詞匯表是一樣的,所有的元素是一樣,所有的屬性也都是一樣的。唯一一點(diǎn)不同之 處,就是XHTML 1.0要求使用XML語(yǔ)法。也就是說(shuō),所有屬性都必須使用小寫字母,所有元素也必須使用小寫字母,所有屬性值都必須加引號(hào),你還得記著使用結(jié)束標(biāo)簽,記著 對(duì)img和br要使用自結(jié)束標(biāo)簽。
從規(guī)范本身的內(nèi)容來(lái)看,實(shí)際上是相同的,沒(méi)有什么不同。不同之處就是編碼風(fēng)格,因?yàn)閷?duì)瀏覽器來(lái)說(shuō),讀取符合HTML 4.01、HTML 3.2,或者XHTML 1.0規(guī)范的網(wǎng)頁(yè)都沒(méi)有問(wèn)題,對(duì)瀏覽器來(lái)說(shuō)這些網(wǎng)頁(yè)都是一樣的,都會(huì)生成相同的DOM樹。只不過(guò)人們會(huì)比較喜歡XHTML 1.0,因?yàn)椴簧偃苏J(rèn)同它比較嚴(yán)格的編碼風(fēng)格。
到了2000年,Web標(biāo)準(zhǔn)項(xiàng)目(Web Standards Project)的活動(dòng)開展得如火如荼,開發(fā)人員對(duì)瀏覽器里包含的那些亂七八糟的專有特性已經(jīng)忍無(wú)可忍了。大家都很生氣,就罵那些瀏覽器廠商“遵守個(gè)規(guī)范 就他媽的真有那么難嗎?”當(dāng)時(shí)CSS有了長(zhǎng)足的發(fā)展,而且與XHTML 1.0結(jié)合得也很緊密,CSS加XHTML 1.0基本上就可以算是“最佳實(shí)踐”了。雖然在我看來(lái)HTML 4.01與XHTML 1.0沒(méi)有本質(zhì)上的不同,但大家都接受了。專業(yè)的開發(fā)人員能做到元素全部小寫,屬性全部小寫,屬性值也全部加引號(hào):由于專業(yè)人員起到了模范帶頭作用,越來(lái) 越多的人也都開始支持這種語(yǔ)法。
我就是一個(gè)例子!過(guò)去的10年,我一直都使用XHTML 1.0文檔類型,原因是這樣一來(lái)驗(yàn)證器就能給我?guī)蜕虾艽蟮拿?,?duì)不對(duì)?只要我寫的是XHTML 1.0,然后用驗(yàn)證器測(cè)試,它就能告訴我是不是忘了給屬性值加引號(hào),是不是沒(méi)有結(jié)束某個(gè)標(biāo)簽,等等等等。而如果我寫的是HTML 4.01,同樣的問(wèn)題就變成了有效的了,驗(yàn)證器就不一定會(huì)提醒我了。
這就是我一直使用XHTML 1.0的原因。我估計(jì)很多人都……使用XHTML 1.0的朋友,請(qǐng)把手舉起來(lái)。好的。HTML 4.01呢?人少多了。一直沒(méi)有舉手的呢,大聲點(diǎn),你們用什么?HTML5,也很好!更早的呢,還有人使用更早的文檔類型嗎?沒(méi)有了?
10年來(lái)我一直使用XHTML 1.0,就是因?yàn)轵?yàn)證器能夠真正幫到我。有人用XHTML 1.1嗎?你知道有人用嗎?請(qǐng)舉手,別放下。有人把網(wǎng)頁(yè)標(biāo)記為XML文檔嗎?有嗎?那你們使用的就不是XHTML 1.1。
這就是個(gè)大問(wèn)題。XHTML 1.0之后是XHTML 1.1,只是小數(shù)點(diǎn)后面的數(shù)字加了一個(gè)1,而且從詞匯表的角度看,規(guī)范本身沒(méi)有什么新東西,元素也都相同,屬性也都相同。但對(duì)XHTML 1.1來(lái)說(shuō),唯一的變化是你必須把自己的文檔標(biāo)記為XML文檔。在使用XHTML 1.0的時(shí)候,還可以把文檔標(biāo)記為HTML,而我們也正是這樣做的,否則把文檔標(biāo)記為XML沒(méi)準(zhǔn)真會(huì)把人逼瘋的。
為什么這么說(shuō)呢?首先,把文檔標(biāo)記為XML后,Internet Explorer不能處理。當(dāng)然,IE9是可以處理了。恐怕有人會(huì)講“真是太可愛了”,他們到現(xiàn)在居然都沒(méi)有忘了這件事。這艘船終于靠岸了!不過(guò)那時(shí)候, 作為全球領(lǐng)先的瀏覽器,IE無(wú)法處理接收到的XML文檔類型的文檔,而規(guī)范又要求你以XML文檔類型來(lái)發(fā)送文檔,這不把人逼瘋才怪呢。
所以說(shuō)XHTML 1.1有點(diǎn)脫離現(xiàn)實(shí),而你不想把文檔以XML格式發(fā)送給那些能夠理解XML的瀏覽器,則是因?yàn)閄ML的錯(cuò)誤處理模型。XML的語(yǔ)法,無(wú)論是屬性小寫,元素 小寫,還是始終要給屬性值加引號(hào),這些都沒(méi)有問(wèn)題,都很好,事實(shí)上我也喜歡這樣做,但XML的錯(cuò)誤處理模型卻是這樣的:解析器如果遇到錯(cuò)誤,停止解析。規(guī) 范里就是這么寫的。如果你把XHTML 1.1標(biāo)記為XML文檔類型,假設(shè)你用Firefox打開這個(gè)文檔,而文檔中有一個(gè)和號(hào)(&)沒(méi)有正確編碼,就算整個(gè)頁(yè)面中就這一處錯(cuò)誤,你看到 的也將是黃屏,瀏覽器死掉了。Firefox會(huì)說(shuō):“沒(méi)戲了,頁(yè)面中有一個(gè)錯(cuò)誤,你看不到這個(gè)網(wǎng)頁(yè)了?!备鶕?jù)XML規(guī)范,這樣處理是正確的,對(duì) Firefox而言,遇到錯(cuò)誤就停止解析,并且不呈現(xiàn)其他任何內(nèi)容是嚴(yán)格按照XML規(guī)范做的。因?yàn)樗皇荋TML,HTML根本就沒(méi)有錯(cuò)誤處理模型,但根 據(jù)XML規(guī)范,這樣做沒(méi)錯(cuò)。
這就是為什么你不會(huì)把文檔標(biāo)記為XML的另一個(gè)原因。接下來(lái),新的版本是XHTML 2,大家注意后面沒(méi)有日期,因?yàn)檫@個(gè)規(guī)范并沒(méi)有完成。
現(xiàn)在就說(shuō)說(shuō)XHTML 2,我很愿意把問(wèn)題說(shuō)清楚,XHTML 2實(shí)際上真是一個(gè)非常非常好的規(guī)范,確實(shí)非常好……從理論的角度來(lái)說(shuō)。我的意思是說(shuō),制定這個(gè)規(guī)范的人都是非常非常有頭腦的。直說(shuō)吧,領(lǐng)導(dǎo)制定這個(gè)規(guī)范的 家伙是斯蒂芬·彭伯頓(Stephen Pemberton),他應(yīng)該是本地人,是一個(gè)聰明過(guò)人的家伙。規(guī)范本身也很了不起,如果所有人都同意使用的話,也一定是一個(gè)非常好的格式。只不過(guò),還不 夠?qū)嶋H。
首先,XHTML 2仍然使用XML錯(cuò)誤處理模型,你必須保證以XML文檔類型發(fā)送文檔;這一點(diǎn)不言自明:沒(méi)人愿意這樣做。其次,XHTML 2有意不再向后兼容已有的HTML的各個(gè)版本。他們甚至曾經(jīng)討論過(guò)廢除img元素,這對(duì)每天都在做Web開發(fā)的人來(lái)說(shuō)確實(shí)有點(diǎn)瘋了的味道。但我們知道,他 們之所以這樣做,理論上確實(shí)有充足的理由——使用object元素可能會(huì)更好。
因此,無(wú)論XHTML 2在理論上是多么完美的一種格式,但卻從未有機(jī)會(huì)付諸實(shí)踐。而之所以難以將其付諸實(shí)踐,就是因?yàn)橄衲阄疫@樣的開發(fā)人員永遠(yuǎn)不會(huì)支持它,它不向后兼容。同樣,瀏覽器廠商也不會(huì),瀏覽器廠商必須要保證向后兼容。
為什么XHTML 1.1沒(méi)有像XML那樣得到真正廣泛地應(yīng)用,為什么XHTML 2從未落到實(shí)處?因?yàn)樗`反了一條設(shè)計(jì)原理,這條設(shè)計(jì)原理就是著名的伯斯塔爾法則(Postel’s Law)。大家都知道:
發(fā)送時(shí)要保守;接收時(shí)要開放。
沒(méi)錯(cuò),接收的時(shí)候要開放,而這也正是Web得以構(gòu)建的基礎(chǔ)。開發(fā)瀏覽器的人必須敞開胸懷,接收所有發(fā)送給瀏覽器的東西,因?yàn)樗鼈冞^(guò)去一直都在接收那 些不夠標(biāo)準(zhǔn)的東西,對(duì)不對(duì)?Web上的很多文檔都不規(guī)范,但那正是Web發(fā)展的動(dòng)力。從某種角度講,Web走的正是一條混沌發(fā)展之路,雖然混沌,但卻非常 美麗誘人。在Web上,格式不規(guī)范的文檔隨處可見,但那又怎樣呢?如果所有人都能夠?qū)懗鼍珳?zhǔn)的XML,所有文檔的格式都十分正確,那當(dāng)然好了??墒?,那不 現(xiàn)實(shí)。現(xiàn)實(shí)是伯斯塔爾法則。
作為專業(yè)人士,在發(fā)送文檔的時(shí)候,我們會(huì)盡量保守一些,盡量采用最佳實(shí)踐,盡量確保文檔格式良好。但從瀏覽器的角度說(shuō),它們必須以開放的姿態(tài)去接收任何文檔。
有人可能會(huì)說(shuō)XML有錯(cuò)誤處理模型,XHTML 1.1和XHTML 2都使用該模型,但那個(gè)錯(cuò)誤處理模型太苛刻了。它絕對(duì)不符合接收時(shí)開放這個(gè)法則,遇到一個(gè)錯(cuò)誤就停止解析怎么能叫開放呢?我們只能說(shuō)它與健壯性法則(也就是伯斯塔爾法則)是對(duì)立的.
歡迎留言、轉(zhuǎn)載、分享…轉(zhuǎn)載本文章請(qǐng)關(guān)注!網(wǎng)站建設(shè)選擇北京瑩晨設(shè)計(jì)m.luyingji.cn
-
男女程序員的對(duì)比,那個(gè)更適合這個(gè)行業(yè).
日期:2016-02-24 瀏覽次數(shù):3220
-
網(wǎng)站布局之價(jià)格表單設(shè)計(jì)靈感來(lái)源。
日期:2015-12-14 瀏覽次數(shù):3175
-
JS判斷移動(dòng)設(shè)備并實(shí)現(xiàn)跳轉(zhuǎn)至手機(jī)版網(wǎng)頁(yè)
日期:2015-12-14 瀏覽次數(shù):3319
-
HTML5的設(shè)計(jì)原理之求真務(wù)實(shí)。
日期:2015-07-31 瀏覽次數(shù):2786
-
HTML5的設(shè)計(jì)特性!
日期:2015-07-31 瀏覽次數(shù):2722
-
免費(fèi)SSL證書申請(qǐng)網(wǎng)站topssl.cn上線
日期:2024-09-23 瀏覽次數(shù):1890
-
如何在北京順義尋找一個(gè)踏實(shí)的網(wǎng)站建設(shè)公司
日期:2023-08-10 瀏覽次數(shù):4951
-
順義網(wǎng)站建設(shè):北京順義網(wǎng)站建設(shè)的優(yōu)點(diǎn)
日期:2023-05-25 瀏覽次數(shù):5332
-
選擇網(wǎng)站公司需要考慮哪些因素
日期:2023-05-25 瀏覽次數(shù):4177
-
北京模板建站
日期:2023-03-28 瀏覽次數(shù):4388
-
網(wǎng)站設(shè)計(jì)配色基礎(chǔ):色彩設(shè)計(jì)方法-色調(diào)調(diào)和而形成的配色方式
日期:2019-11-11 瀏覽次數(shù):2497
-
關(guān)于網(wǎng)頁(yè)中時(shí)間和日期輸入字段設(shè)計(jì)趨勢(shì)
日期:2018-11-26 瀏覽次數(shù):3126
-
未來(lái)網(wǎng)頁(yè)設(shè)計(jì)?的趨向預(yù)測(cè)
日期:2018-10-16 瀏覽次數(shù):3247
-
簡(jiǎn)約主義的字體排版成就優(yōu)秀網(wǎng)站設(shè)計(jì)作品。
日期:2016-08-10 瀏覽次數(shù):3224
-
保持網(wǎng)站更新的9個(gè)理由
日期:2019-06-11 瀏覽次數(shù):2571