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