REST與面向資源的Web開發 李錕 讀書筆記

2021-06-27 20:12:59 字數 1352 閱讀 2019

1:什麼是web

從技術角度理解web有三大基石,第一是uri,標識資源,第二個http操作資源,第三個hypertext超文字,描述資源的狀態,超文字也可以有xml json或者純文字。下面我們給web應用下乙個定義,究竟什麼是web應用?首先要使用三大技術,其次是執行在英特耐特環境中,而不是執行在區域網、內網環境,web應用名詞與企業應用相對應。

2:什麼是架構風格

架構風格是一種研究和評價軟體架構設計的方法。

架構風格這種研究方法建立在兩個前提之上,第乙個前提就是軟體的架構設計,必須要考慮其執行的環境,軟體架構並不是紙面上源**結構。第二個是脫離開執行環境的上下文,無法評價架構的優劣,不考慮兩種環境具體上下文沒有辦法對兩種架構比較。

常見分布式應用架構風格,主要有三大類:第一類是分布式物件,包括corba、dcom,remoting,還有一種遠端過程呼叫,簡稱rpc,比如soap、json等。第三種表述性狀態轉移,簡稱rest,這是我們詳細**的一種新的架構風格。

3:rest架構風格有哪些架構約束

第乙個架構約束是客戶伺服器,通訊只能由客戶端單方面發起,表現為請求響應的形式。

第二個架構約束是無狀態,通訊的會話狀態全部由客戶端負責維護,伺服器端負責維護會話狀態之外的其他狀態,

第三個快取,響應內容可以在通訊鏈條某處被緩衝,以改善效率。

第四個統一介面,通訊元件之間要有統一介面,以提高互動的可見性,這樣的話中間元件對請求語義非常清楚,很方便做一些快取或者實施安全策略。

第五個架構約束是分層系統,通過限制元件行為,將架構分解為若干等級的層,每乙個元件看到與其互動的相鄰層,這個大家如果熟悉,在通訊鏈條當中插入很多中間的元件,每個元件能夠看到和它直接互動的相連的層。

4:什麼是資源

資源是一種看待伺服器的方式,將伺服器看作由很多的離散的資源組成,這種看待伺服器的方式和分布式物件有很明顯的分別,分布式物件看作乙個物件,每個物件裡面有呼叫的方法,rest看作是很多離散的資源,資源是伺服器乙個可以命名的抽象的概念,資源是乙個抽象的概念,大家可能原來理解的資源僅僅是伺服器的檔案或者僅僅是一張表,但是資源是抽象的,資源以名詞為核心的特徵,首先關注的是名詞,資源物件導向程式設計中的介面,暴露給外界的介面,資源由乙個或者多個uri標識,uri是資源的名詞,也是資源在web上的位址,允許使用多個uri標識同一資源,對資源感興趣的客戶通過uri與資源互動。下面看一下什麼是資源表述?它是一段對於資源在某乙個特定時刻的狀態描述,資源表述可以在客戶和伺服器之間轉移,資源表述有多種格式,最常見的是html/xml/json純文字,資源表述格式可以通過協商機制來確定。通常來說不同方向表述使用的是不同的格式,伺服器到客戶端,客戶端到伺服器端表述不一樣。

面向資源與面向活動的 Web 服務

每當一些 web 應用服務提供方提出允許開發者整合他們的服務的 web 服務 api 時,大家都非常關心由 api 實現的互操作設計模式。如果 api 使用的是 rest 樣式的互操作,rest 方法的擁護者就會將該 api 作為說明為什麼 rest 樣式服務比 soap 樣式服務更優越的重要例子而...

面向資源與面向活動的 Web 服務

每當一些 web 應用服務提供方提出允許開發者整合他們的服務的 web 服務 api 時,大家都非常關心由 api 實現的互操作設計模式。如果 api 使用的是 rest 樣式的互操作,rest 方法的擁護者就會將該 api 作為說明為什麼 rest 樣式服務比 soap 樣式服務更優越的重要例子而...

REST面向資源架構 RESTful架構

rest基礎概念 以狀態為角度,提出將狀態移植到客戶端處理的新思路。提出乙個既適於客戶端應用又適於服務端的應用的 統一的web檢視。適合b s c s s s。http客戶端與http伺服器之間的差別,對架構來說無所謂。乙個軟體應可以既充當web客戶端又充當web伺服器,而無須採用兩套完全不同的ap...