。。。
1.
什麼是
rest
rest是representational state transfer的縮寫,**於
r. fielding
的一篇博士**:
《architectural styles and the design of network-based software architectures 》
。rest不是什麼規範,而是一種架構,一種網路應用的架構。可以把rest理解成一種設計模式,就像其他設計模式一樣,只不過rest這種設計模式是應用在網路應用架構上的。
1.1
rest的含義
為了進一步理解什麼是
rest,讓我們看看
representational state transfer
這三個英文單詞分別表示什麼意思:
中文直譯:代表的,表像的。如果把
web伺服器端中所有的東西(資料)都看作是資源(resource),那麼呈現在使用者面前(客戶端)的就是資源的表像(representation)。同乙個資源可能有不同表像,例如乙個人作為乙個resource,那麼他的表像(representation)可以是一張(相片),也可以是乙個xml描述的個人資訊,等等。每乙個資源都有自己的唯一標識(uri)。
中文直譯:狀態。這個比較難理解。首先這個狀態是客戶端的狀態,而不是伺服器端的狀態(在
rest中,伺服器端應該是無狀態的)。那麼,把state和representation聯絡在一起(representational state),可以理解成:每乙個資源(resource)在客戶端的表像(representation)就是客戶端的乙個狀態(state)。
中文直譯:轉移。當使用者通過不同的
uri訪問不同的資源時,客戶端的表像(representation)也會隨著變化,也就意味著客戶端的狀態變更(transfer)了,連起來就是:representational state transfer。
1.2
rest架構的特點
分層結構,像
tcp/ip
的分層結構一樣,第
n層使用第
n-1層提供的服務並為第
n+1層提供服務。在
rest
中,client-server
之間加入了
proxy
層和gateway
層。在這些中間層可以加入一些業務處理以外的功能,譬如:負載均衡,安全控制等等。
code-on-demand
,客戶端可以訪問伺服器端的
resource
,但並不知道如何處理伺服器端返回的結果,這個處理過程的**應該是從伺服器端傳送過來,然後在客戶端執行,也就是說客戶端的功能是根據需要動態從伺服器端獲得的。乙個很簡單的例子,
optional
),也就是說在你的
rest
實現當中,可以不考慮這個特性。
深入理解DataAdapter(一)
ado.net有兩個核心元件 基於連線的data provider元件以及基於非連線的dataset元件。基於連線的data provider元件常用於實時地從資料庫中檢索資料。而基於非連線的dataset,似乎與資料庫沒有直接聯絡,僅僅用於在本地記憶體中儲存data provider提供的資料表或...
js深入理解 一
1if a b 兩者等價 a b alert hello word 2.給eval取別名var a 111 var b eval var c b a alert c 輸出 111 3.刪除元素 不能刪除 var語句宣告的變數 var o delete o.x alert o.x 輸出 undefin...
深入理解C (一)
深入理解c 1.list排序以及搜尋 using system using system.collections.generic using system.linq using system.text using system.threading.tasks decimal price public...