2013年7月17日 星期三

REST 與 RESTful 架構

REST( REpresentational State Transfer ),為"具體狀態傳輸",是一種架構模式,用於Web上的架構。Web上所有資源都可統稱resource,因resource以URI表示,具有唯一識別性;因而能用以區分所有的網路資源。Client觸發某個超連結時,Web能夠以該事件啟用下一個狀態或resource,依此藉由Client不斷的觸發而產生的狀態變動

如下為REST 的優點:

  • 支援快取 caching 將改善反應時間跟server的負載能力。
  • 因為不必維持連結狀態,大大改善 server 的 scalability 能力。這表示不同server可以處理同一串 requests。
  • 一個瀏覽器就可以存取任一應用程式跟資源,client 端不需使用別的軟體。
  • 在HTTP之上不依存其他機制跟軟體。
  • 跟其他連結方式相比(如RPC),可以提供相等的功能。
  • 不需要其他的 discovery 機制,因為使用超連結了。
  • 提供比RPC更好的長期相容性,因為 :
  • 如同HTML這種文件具有後前及向後的相容能力
  • 支援新的內容格式不需要丟掉舊的

RESTful所表示是符合 REST principles 的系統稱做 RESTful,細部則是RESTful的環境,Client建構URL跟規劃好的resource做對應,明確排程Web狀態的改變。簡單來說,若是以 HTTP 為基礎來設計 RESTful 系統,即是完善的使用 HTTP,因為 HTTP 本身就是 REST 的實作。


參考出處:
http://ihower.tw/blog/archives/1542
http://blog.kkbruce.net/2012/04/aspnet-web-api-2-rest.html#.Udr-P_kwdsx
http://blog.toright.com/archives/1399

沒有留言:

張貼留言