什麼是REST架構

2022-09-19 07:51:14 字數 1642 閱讀 3691

rest架構風格是全新的針對web應用的開發風格,是當今世界最成功的網際網路超**分布式系統架構,它使得人們真正理解了http協議本來面貌。隨著 rest架構成為主流技術,一種全新的網際網路網路應用開發的思維方式開始流行。

rest是什麼 

rest是英文representational state transfer的縮寫,中文翻譯為「表述性狀態轉移」,他是由roy thomas fielding博士在他的** 《architectural styles and the design of network-based software architectures》中提出的乙個術語。rest本身只是為分布式超**系統設計的一種架構風格,而不是標準。

基於web的架構,實際上就是各種規範的集合,這些規範共同組成了web架構。比如http協議,比如客戶端伺服器模式,這些都是規範。每當我們在原有規 范的基礎上增加新的規範,就會形成新的架構。而rest正是這樣一種架構,他結合了一系列的規範,而形成了一種新的基於web的架構風格。

傳統的web應用大都是b/s架構,它包括了如下一些規範 。 

客戶-伺服器 

這種規範的提出,改善了使用者介面跨多個平台的可移植性,並且通過簡化伺服器元件,改善了系統的可伸縮性。最為關鍵的是通過分離使用者介面和資料儲存這兩個關注點,使得不同使用者終端享受相同資料成為了可能。

無狀態性 

無 狀態性是在客戶-伺服器約束的基礎上新增的又一層規範。他要求通訊必須在本質上是無狀態的,即從客戶到伺服器的每個request都必須包含理解該 request所必須的所有資訊。這個規範改善了系統的可見性(無狀態性使得客戶端和伺服器端不必儲存對方的詳細資訊,伺服器只需要處理當前 request,而不必了解所有的request歷史),可靠性(無狀態性減少了伺服器從區域性錯誤中恢復的任務量),可伸縮性(無狀態性使得伺服器端可以 很容易的釋放資源,因為伺服器端不必在多個request中儲存狀態)。同時,這種規範的缺點也是顯而易見得,由於不能將狀態資料儲存在伺服器上的共享上 下文中,因此增加了在一系列request中傳送重複資料的開銷,嚴重的降低了效率。

快取 為 了改善無狀態性帶來的網路的低效性,我們填加了快取約束。快取約束允許隱式或顯式地標記乙個response中的資料,這樣就賦予了客戶端快取 response資料的功能,這樣就可以為以後的request共用快取的資料,部分或全部的消除一部分互動,增加了網路的效率。但是用於客戶端快取了信 息,也就同時增加了客戶端與伺服器資料不一致的可能,從而降低了可靠性。

b/s架構的優點是其部署非常方便,但在使用者體驗方面卻不是很理想。為了改善這種情況,我們引入了rest。 

rest在原有的架構上增加了三個新規範:統一介面,分層系統和按需**。 

統一介面 

rest 架構風格的核心特徵就是強調元件之間有乙個統一的介面,這表現在rest世界裡,網路上所有的事物都被抽象為資源,而rest就是通過通用的鏈結器介面對 資源進行操作。這樣設計的好處是保證系統提供的服務都是解耦的,極大的簡化了系統,從而改善了系統的互動性和可重用性。並且rest針對web的常見情況 做了優化,使得rest介面被設計為可以高效的轉移大粒度的超**資料,這也就導致了rest介面對其它的架構並不是最優的。

分層系統 

分層系統規則的加入提高了各種層次之間的獨立性,為整個系統的複雜性設定了邊界,通過封裝遺留的服務,使新的伺服器免受遺留客戶端的影響,這也就提高了系統的可伸縮性。

以上對rest架構的闡述摘自網上!

定義介紹 什麼是REST

rest架構風格是全新的針對web應用的開發風格,是當今世界最成功的網際網路超 分布式系統架構,它使得人們真正理解了http協議本來面貌。隨著 rest架構成為主流技術,一種全新的網際網路網路應用開發的思維方式開始流行。rest是什麼 rest是英文representational state tr...

什麼是REST和RESTful

再次首先,rest的全稱是resource representational state transfer,據說是因為晦澀所以去掉了前面的resource。分解開來 resource 資源,即資料 前面說過網路的核心 比如 newsfeed,friends等 representational 某種表...

什麼是REST,以及RESTful?

rest representational state transfer 直接翻譯 表現層狀態轉移。這個中文直譯經常出現在很多部落格中。尼瑪誰聽得懂 表現層狀態轉移 這是人話嗎?我自己也困惑了很久,查詢了很多資料,花了差不多一年有個還算清晰的理解。分享如下 ivony 老師的一句話概括很精闢 url...