|
什么樣的UR稱得上優(yōu)秀的URI?
優(yōu)秀的URI就是不需要改變的URI。
是什么迫使URI做出改變?
不改變的是URI:改變的是人。
理論上人們沒有什么原因去改變URIs,但是在實際運(yùn)行中卻存在著成百上千的原因。
從理論上講,域名的所有者擁有該域名下的所有URI。 理論上您域名下的所有URI是完全由您控制的,所以你是可以按照自己喜歡的方式使URI變得穩(wěn)定。迫使一個文件地址消失的原因是域名過期或服務(wù)器沒有在繼續(xù)運(yùn)行。這就是為了會有這么多改來該去的鏈接。其中的一部分是由于缺乏遠(yuǎn)見導(dǎo)致的。 下面是您可以聽到的一些原因。
為了使網(wǎng)站更好,我們剛改版了網(wǎng)站。
你真的覺得舊的URI已經(jīng)不能再繼續(xù)使用了嗎?如果是這樣,那么慎重的設(shè)計新的URI,讓在在下次改版的時候無需改變它。
我們有大量過期的、保密的、無效的的文檔需要進(jìn)行區(qū)分
我們需要在文檔公開前仔細(xì)的篩選,文件是不是保密的。解決上述問題還是需要進(jìn)行深思熟慮。確保公開的每個檔案都是可以被公布的,并在meta信息中標(biāo)注出創(chuàng)建日期和失效日期。
我們發(fā)現(xiàn)不得不移動文件
要知道這是一個最懶的借口,很多人不知道像Apache這樣的服務(wù)器會在URI和物理路徑間為你提供一個靈活的設(shè)置。把你的URI看成是抽象空間,將其映射到具體的物理空間,然后將映射告訴服務(wù)器。你只要修改映射關(guān)系就可來解決移動文件帶來的URI改變的問題。
我們曾經(jīng)使用的是一個CGI腳本,現(xiàn)在我們使用的是一個二進(jìn)制程序。
有一個瘋狂的想法,即由腳本制作的頁面必須在“cgi-bin”或“CGI”文件夾內(nèi)。 這樣做暴露了您服務(wù)器的運(yùn)行機(jī)制。在不改變內(nèi)容的情況下, 你轉(zhuǎn)變機(jī)制,你所有的URI都會發(fā)生變化。
我不認(rèn)為URI是需要持久的,需要持久的那是URN。
這是URN討論后最糟糕的影響,有些人認(rèn)為,命名空間的研究,會使是鏈接更加持久化,URN將解決一切問題。如果你是這部分人,那么允許我將你叫醒。
我看到的大多數(shù)URN看起來向HTTP URI,換句話說,如果你認(rèn)為你的團(tuán)隊有建立持久的URN的能力,那么現(xiàn)在就讓他們建立HTTP URI,這將不會給你的URI帶來不穩(wěn)定。
我們想做,但是我們沒有合適的工具。
你需要做的是讓W(xué)eb服務(wù)器在瞬間查找一個持久的URI,并返回該文件。 您希望能夠?qū)RL存儲在一個檢查文件里,并與存放數(shù)據(jù)不斷保持更新。 您想存儲不同版本和相同的文件翻譯,并希望保持一個獨(dú)立的校驗和記錄。 當(dāng)你想創(chuàng)建一個新的文檔,您的編輯框需要您提供一個URI。
你需要在不改變URI的情況下可以改變URI的權(quán)限及安全級別等。這看起來很難,但是我們最終會實現(xiàn),W3C使用的是Jigedit,他可以通過腳本控制服務(wù)其和客戶端。
我為什么要在乎這些?
當(dāng)你在服務(wù)器上修改了URI,你不會知道還有多少人會使用舊的URI。他們可能把你的鏈接發(fā)布到了其他網(wǎng)站上,他們可能把你的鏈接存為了書簽。他們可能把你的URI告訴了別人。
當(dāng)一些人點(diǎn)擊鏈接,但是發(fā)現(xiàn)鏈接無法打開的時候,他們就會對網(wǎng)站擁有者失去信心。他們會因為不能完成自己想要的目標(biāo)而沮喪。
我該怎么去設(shè)計URI?
使一個URI可以持續(xù)2年、20年、200年,這是一個網(wǎng)站管理員的責(zé)任。這需要思想、組織和承諾。
一般來說URI改變時因為文檔里的一些信息發(fā)生了改變,這和URI的設(shè)計至關(guān)重要的。
文件的創(chuàng)建日期這是不會改變的。這對分離舊的系統(tǒng)和新的系統(tǒng)非常有用。這能很好的讓你開始設(shè)計一個URI。即使這個文件會被多次修改,但是他還是只會有一個創(chuàng)建日期。
唯一例外的是一個網(wǎng)頁是故意“最新”的,例如頻道的首頁。
http://www.pathfinder.com/money/moneydaily/latest/
此URI不需要日期的主要原因是此頁面時不斷更新的,如果你需要者頁面的存檔,存檔地址可以是
http://www.pathfinder.com/money/moneydaily/1998/981212.moneyonline.html
?。ㄟ@個URI看上去不錯,除了”98″和“.html”有些多余)
哪些信息需要被拋棄?
在使用日期以后,把任何信息放入URI都有可能帶來問題。
- 作者的名字 著作權(quán)可能會因為版本的修改而改變,比如團(tuán)隊里的某些人離開使事務(wù)被轉(zhuǎn)手。
- 標(biāo)題 這個是非常棘手的,他總是現(xiàn)在看起來非常合適,但是過些時間久需要改變。
- 狀態(tài) 如”old”,”new”,”latest”等,文件很可能會改變狀態(tài)。
- 訪問權(quán)限 一個文件的訪問權(quán)限可能會因為情況而改變,不要將文檔放在”public”、”team”下。
- 文件擴(kuò)展名 即使是”.html”也有可能會改變。
- 程序機(jī)制 如”cgi”和”exec”
- 磁盤名稱 這個也有用使用的!
下面是一個很好的例子:
http://www.w3.org/1998/12/01/chairs
一份關(guān)于W3C椅子的會議報告。
按文章主題進(jìn)行分類
這是非常危險的操作。通常情況下,你URI中的文檔分類是按你正在進(jìn)行的工作進(jìn)行區(qū)分的。這就可能帶來隱患,你從事的領(lǐng)域可能會在今后發(fā)生變化。在W3C,我們期望吧”MarkUp”修改為”Markup”,后來又期望修改為“HTML”,我們不能保證現(xiàn)在的命名在以后是否適用。
按主題分類這是一個非常理想的分類方案,包括把整個互聯(lián)網(wǎng)進(jìn)行分類一樣,這是一個非常不錯的解決辦法,但是從長遠(yuǎn)看存在著嚴(yán)重的缺陷。每個人對語言中的每個聚類的主題詞都有不同的理解,網(wǎng)絡(luò)之間的主題關(guān)系,并不是像樹型那么簡單。事實上,當(dāng)你在你的URI中綁定分類時,未來你很有可能去改變這個分類,到時候URI就需要跟隨著改變。
在URI中使用主題進(jìn)行分類的一個原因是你需要一個名稱作為URI的一個部分來組織內(nèi)容,比如內(nèi)容細(xì)分,通常來說在日期存在(日期在左邊)的情況下還是非常安全的,1998/pics可以理解為,我們在1998年的照片。而不是照片中1998年我們在做什么。
不要忘記你的域名
請記住,這不僅適用于URI“路徑”,同時也使用與服務(wù)器名稱。 在域名中無論代表公司,或文件狀態(tài),或訪問級別,或者安全級別劃分,要非常非常小心,特別是在使用多個域名訪問一個文件的時候,不要忘記,你可以在服務(wù)器端使用重定向。
結(jié)論
保持URI2年,20年,200年甚至是2000年不變并不是那么的簡單,站長去決定未來真的是很難,因為他們現(xiàn)在使用的工具,看起來是現(xiàn)在最好的,沒有人知道未來會怎么樣,很多事情會改變,但是URI還是需要保留,我們唯一可以做的就是思考如何設(shè)計URI。
it知識庫:優(yōu)秀的URI不會改變,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。