使用全局唯一URI(如REST所做的)而不是使用專有的id格式引用資源的好處是什麼?全局資源URI(即可尋址性)的好處是什麼?
例如:
在第一方法中的整個URL是ID。在第二種方法中,只有5是ID。第一種方法比第二種方法有什麼實際好處?
爲什麼REST(似乎)不會主張第一種方法?
- 編輯:
我的問題是混亂的,因爲它確實問了兩個獨立的問題:
- 什麼是尋址功能的好處?
- 上面看到的兩種URI形式有什麼區別。
我已經使用自己的帖子回答了以下兩個問題。
使用全局唯一URI(如REST所做的)而不是使用專有的id格式引用資源的好處是什麼?全局資源URI(即可尋址性)的好處是什麼?
例如:
在第一方法中的整個URL是ID。在第二種方法中,只有5是ID。第一種方法比第二種方法有什麼實際好處?
爲什麼REST(似乎)不會主張第一種方法?
- 編輯:
我的問題是混亂的,因爲它確實問了兩個獨立的問題:
我已經使用自己的帖子回答了以下兩個問題。
我會回答我的問題:
1)爲什麼是URI的重要?
我會從REST Web服務由倫納德·理查森和Sam Ruby(ISBN:978-0-596-52926-0)引述:
考慮一個真正的URI,在名稱的資源流派「資源目錄約 水母」:http://www.google.com/search?q=jellyfish。這種水母搜索就像 一樣真實的URI,如http://www.google.com。如果HTTP不可尋址,或者Google搜索引擎不是可尋址的Web應用程序,那麼我將無法在書中發佈該URI。我必須告訴你:「打開一個到google.com的網絡連接,在搜索框中鍵入'jellyfish' ,然後點擊'Google搜索'按鈕。
這不是學術上的擔心。直到20世紀90年代中期,當ftp:// URIs 因在FTP站點上描述文件而變得流行時,人們必須編寫 這樣的內容:「在ftp.example.com上啓動一個匿名FTP會話。然後 更改爲目錄pub/files /並下載文件file.txt。「將URI作爲 作爲HTTP尋址。現在人們只寫:「下載ftp:// ftp.example.com/pub/files/file.txt」。步驟相同,但現在它們可以通過機器執行。
[...]
可尋址性是Web應用程序最好的事情之一。它使得客戶能夠以原始設計師從未想象的方式使用網站。
2)什麼是可尋址性的好處?
跟隨服務器提供的URI比自己構建它要容易得多。由於資源關係變得太複雜而無法用簡單的規則來表達,因此尤其如此。在服務器中編寫邏輯比在衆多客戶端中重新實現它更容易。
即使單個資源URI保持不變,資源之間的關係也可能會發生變化。例如,如果Google地圖要更改其地圖切片的比例,則計算相對切片位置的客戶端將會中斷。
3)URIs比自定義ID有什麼好處?
自定義ID唯一標識資源。通過告訴你在哪裏找到URI,URI更進一步。這簡化了客戶端邏輯。
主要是搜索引擎優化。
這也使他們更容易記住,更清潔,更專業在我看來。
不再SEO必然爲真,根據谷歌 - http://googlewebmastercentral.blogspot.com/2008/09/dynamic-urls-vs-static-urls.html但我絕對與你的第二句:-) – HoboBen 2008-09-29 13:48:44
第一種更美觀。
從技術上講沒有區別,但可以使用前者。
當我看到這樣的uri是一個普通用戶時,主要的事情就是能夠記住uri。
我們的極客們很好,有問號和變量,但如果有人記得http://www.host.com/users/john而不是http://www.host.com/?view=users&name=john,那麼這是一個巨大的好處。
我認爲這要歸結爲你想堅持風水的原則。
正如Ólafur所說,前網址的清晰度是一個好處。
另一個是實施靈活性。
假設學生5不經常變動。如果您使用REST風格的URL,則可以選擇提供靜態文件而不是運行代碼。在Rails中,對學生/ 5的第一個請求會在你的web根目錄下創建一個緩存的html文件。該文件用於服務後續請求而不涉及後端。自然,這種方法沒有具體的軌道。
後面的網址不允許這樣做。靜態頁面的名稱中不能包含url變量(?,=)。
從REST的角度來看,這兩個URI都是有效的,但只是意識到Web緩存對查詢字符串參數的處理方式非常不同。
如果您想使用緩存來獲得優勢,那麼我建議您不要使用查詢字符串參數來標識您的資源。
「爲什麼REST會熄滅......?」 - 你能在這裏詳細說明嗎?這確實是一個完美的資源,你可以輕鬆地對它進行GET,DELETE和POST。你會對/ student /添加一個。什麼是問題? – Till 2008-09-29 01:54:32
http://www.infoq.com/articles/mark-baker-hypermedia寫着「超媒體的解決方案就是使用標準化的標識符 - URI的,爲Web - 而不是專有的,從而避免了Flickr的專有知識的需要[ ...]「 雖然我記得在其他地方閱讀了更多。 – Gili 2008-09-29 02:05:30