超文本鏈接是World Wide Web的基礎。但是如果沒有404錯誤的話,我們所熟悉的互聯網就不會有今天的規模和繁榮。Jesse Dunietz回顧了404錯誤的誕生歷史,并且對它給出了一個充滿哲學意義的極高評價:404之于萬維網,就像0之于數學。無用之用,方為大用。原文發表在《大眾機械》上,標題為:How the 404 Error Created the World Wide Web
![]() 404錯誤顯然是項創新,但是如果沒有它的話,你所了解和喜愛的互聯網就不可能出現。 它是每個網上沖浪者的禍害,是互聯網上你害怕聽到的指甲刮黑板聲。只要你點擊任何創建日期要追溯到2005年以前的鏈接,單擊幾乎任何可追溯到2005年之前的鏈接,下面這行字的出現幾乎是不可避免:“HTTP 404錯誤:頁面未找到。” 只要上過網的人應該都熟悉404錯誤,這是Web服務器告訴你此路不通的方式。不過鮮為人知的是,WWW之所以存在正是因為這個錯誤。 超鏈接的歷史 我們先來談談超鏈接。我們往往以為我們所謂的web——由大量相互鏈接的網頁組成的集合——是互聯網連接的產物。或者換句話說:首先出現了允許計算機之間交換數據的通信網絡,然后在此之上我們建立了一個相互連接的迷宮,里面放滿了文檔和阿貓阿狗的視頻等。實際上,反過來才是正確的。超文本或有課跟蹤鏈接到其他內容的文本這種想法,比聯網計算機的想法要早好幾十年。
![]() Vannevar Bush基于縮微膠片的memex信息機器的概念圖,來自1945年他在《大西洋月刊》上發表的文章。 超文本至少可以追溯到1945年,當時技術先驅Vannevar Bush提出了一種超文本增強型的縮微膠卷機器,他稱之為“Memex(記憶的延伸)”。Bush設想在縮微膠卷的邊緣留一小塊,然后按照用戶的指示,memex可以在膠卷的邊緣打上相關膠卷的地址代碼。此后任何時候,觀看同一張縮微膠片的人都可以馬上拉開鏈接的面板。 但是Bush的想法太過超前了,直到1960年代以前,他的想法都一直只是個空想。隨著數字計算機的騰飛,真正的超文本很快就變成了現實。IT傳奇人物Ted Nelson借鑒了Bush的想法,構思了一個野心勃勃的超文本概念,叫做Xanadu項目,盡管直到1998年它才得以部分實現。不過,到了60年代后期, Nelson跟人一起開發了一套不太復雜的超文本系統,可支持文檔內的鏈接。 與此同時,早期人機交互領域的佼佼者之一, Douglas Engelbart 正在研究其革命性的NLS(oNLine System)。NLS有許多突破性的功能,其中之一是該系統允許用戶使用超鏈接在文檔中跳轉。所以說,早在1980年代中期的時候,超文本系統就在Nelson、Engelbart及其后繼的工作中出現了。 現代網絡慢慢成形 不過這些系統存在一定能夠的局限性,最大的限制是它們僅限在單臺計算機上有效。比方說,蘋果公司的HyperCard維護了一個便簽卡數據庫,但是該數據庫只能鏈接到同一設備上面的其他便簽卡片。但是隨著計算機網絡的興起,很自然就會擴展到從一臺計算機上的文檔鏈接到另一臺計算機上的文檔。即便如此,直到1989年,CERN的承包商伯納斯·李(Tim Berners-Lee)才發明了萬維網。 2009年,伯納斯·李在一場回憶HTTP誕生的TED演講中說:“令人沮喪的是,有太多的潛力沒有釋放出來。大家的磁盤有很多文檔。如果設想所有這些都屬于一個架設在空中的(比如互聯網)的龐大的虛擬文檔系統的一部分的話,那大家的日子就會好過多了。” 但是,這個想法要大范圍的落地生根,還缺了點東西。這個東西就是404錯誤。 在伯納斯·李之前,超文本系統通常都要確保每個鏈接都指向某個地方。所有新鏈接都要添加到一個記錄文檔和鏈接的中心數據庫里面。如果鏈接的目標已經變更或刪除的話,數據庫也必須相應更新鏈接。 如果設想所有這些都屬于一個架設在空中的(比如互聯網)的龐大的虛擬文檔系統的一部分的話,那大家的日子就會好過多了。 保持超鏈接的一致性對用戶很有幫助。當所有數據都駐留在一臺計算機或一個小型網絡上時,這么做也不是什么難事。但是如果是在一個大型計算機網絡里面,你就得需要一個中心的權威機構來注冊登記所有的文檔和鏈接。沒有一個數據庫能夠做到實時更新全球所有的鏈接情況。 這個問題在好一段時間都幾乎沒怎么受到關注。大多數研究人員的關注焦點仍然是記錄卡,幫助應用和其他小型系統上。一些項目的確允許在沒有中央機構的情況下從一臺機器到另一臺機器的單向鏈接,但是這樣做有個前提,那就是假定這些鏈接是作為團隊緊密的文檔創作過程的一部分予以維護的。 結果表明,解決這個問題其實有一個簡單得多的辦法。 “404 Not Found”的誕生 伯納斯-李提出了驗證鏈接的一個絕妙的簡便方法:無需驗證。 在World Wide Web的美麗新世界里,有關鏈接的信息唯一的存放之地就是包含鏈接的文檔。如果目標文檔已經移動或變更的話,那就得由鏈接文檔進行相應更新。或者放手不管——什么都不做。 當然,這種做法意味著鏈接指向的地方可能不存在。這樣一來,就出現了404錯誤。伯納斯·李支持內容不見這種概念,他還給出了發生錯誤時應該返回的官方錯誤代碼。 那么404的數字是從是哪兒來的呢?聽起來好像是隨便起的,但事實并非如此。伯納斯-李的超文本傳輸協議(HTTP)里面有幾十種狀態代碼。以4開頭的代碼針對的是用戶端錯誤,而請求一個不存在的地址(“04”那部分)只是瀏覽的時候可能會搞砸的許多種方式之一。 從某種意義上來說,404之于超文本就像而0之于數學:當然,這似乎很明顯,但是把它正式化并且建立起概念卻把系統的其他部分都給革命了。 有了伯納斯-李的創新后,超文本文檔就可以鏈接到自己知道地址的任何其他文檔。比方說,如果您想鏈接到本文,你不需要獲得我的許可或跟《大眾機械》協調。你做就行了。如果我們在沒有設置重定向的情況下下修改了URL,或者刪掉了本文,你就會收到錯誤消息。 這種獨立性是此后web欣欣向榮的關鍵因素之一。在幾年之內,世界陷入到瘋狂的網頁和單向鏈接海洋。 當出現404錯誤時,網站顯示自定義的頁面是一種時髦。甚至連希拉里·克林頓的競選網站也弄了個404喜劇動作片。 從某種意義上來說,404之于超文本就像而0之于數學:當然,這似乎很明顯,但是把它正名化并且建立起概念卻把系統的其他部分都給革命了。 盡管這種新方案非常出色,但也存在一些問題,主要就是鏈接無效。隨著時間的流逝,頁面會遷移,網站會替換自己的內容,甚至整個網站都會脫機,從而導致指向它們的鏈接觸礁。研究發現,已發布的鏈接至少有50%會在五到十年內失效。不過至少一些網站做出了一些有創意的嘗試,用自定義的404錯誤頁面來款待我們。 有一些技術可以避免鏈接無效,比方說小心地選擇鏈接URL,或者更大包大攬一點的做法:歸檔所有內容。但是對于Web而言,偶爾出現點404引發的鬼臉,不過是沒完沒了的新聞、知識以及貓咪模因需要付出的一點代價而已。 |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信