Restlet - REST架構風格的介紹

襲冷發表於2014-03-31
一、關於
    2000年,Roy T. Fielding在他的博士學位論文《Architectural Styles and the Design of Network-based Software Architectures》(中文版名為《架構風格與基於網路的軟體架構設計》)中,推匯出來了REST這種新的架構風格。REST並不是一種具體的技術,也不是一種具體的規範,REST其實是一種內涵非常豐富的架構風格。

二、原則
    1、面向資源
        資源是一種看待伺服器的方式,每個資源是伺服器上一個可命名的抽象概念。因為資源是一個抽象的概念,所以它可以代表伺服器檔案系統中的一個檔案、資料庫中的一張表等等具體的東西。面向資源即使用URI標識所有值得標識的事物,無論這些資源代表單一資料項、資料項集合、虛擬亦或實際的物件還是計算結果等。
    2、超文字驅動
       “超文字驅動”又名“將超媒體作為應用狀態的引擎”(Hypermedia As The Engine Of Application State,縮寫為HATEOAS)。資源之間通過超連結相互關聯,超連結既代表資源之間的關係,也代表可執行的狀態遷移。在超媒體之中不僅僅包含資料,還包含了狀態遷移的語義,以超媒體作為引擎,驅動Web應用的狀態遷移。即超媒體是連結的思想,使用連結指引可以被標識的資源。
    3、統一介面
        HTTP協議中定義了一個操作資源的統一介面,主要包括 GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS。REST要求,必須通過統一的介面來對資源執行各種操作,且其操作語義必須由HTTP訊息體之前的部分完全表達,不能將操作語義封裝在HTTP訊息體內部。
    4、資源多重表述
        資源的表述是一段對於資源在某個特定時刻的狀態的描述。可以在客戶端-伺服器端之間轉移(交換)。資源的表述可以有多種格式,例如HTML/XML/JSON/純文字/圖片/視訊/音訊等等。資源多重表述即針對不同的需求提供資源多重表述。
    5、無狀態通訊
        伺服器端不保持除了單次請求之外的,任何與其通訊的客戶端的通訊狀態,通訊的會話狀態應該全部由客戶端負責維護。

三、參考
    http://www.infoq.com/cn/articles/rest-introduction/  

    http://www.infoq.com/cn/articles/understanding-restful-style?utm_source=infoq&utm_medium=popular_links_homepage

 


相關文章