天天看點

一文讀懂RESTful架構,讓背景開發不再困難!

作者:真IT小叮當

可能你之前從未聽說過RESTful架構,甚至不知道它是什麼!但是,一旦了解它你就會發現,RESTful架構是如此的火爆,如此的風靡于網際網路軟體架構!

一文讀懂RESTful架構,讓背景開發不再困難!

RESTful既然如此倍受網際網路的歡迎,那麼RESTful架構究竟是什麼呢?

一文讀懂RESTful架構,讓背景開發不再困難!

别着急,想要了解RESTful,我們先來了解一位大佬Roy Thomas Fielding,一個出生于加州拉古納海岸的偉大計算機科學家。一個集”HTTP協定(1.0版和1.1版)主要設計者“、"Apache伺服器軟體作者"、"Apache基金會第一任主席",這三大頭銜于一身的偉大男人。

一文讀懂RESTful架構,讓背景開發不再困難!

2000年,他在博士論文《Architectural Styles and the Design of Network-based Software Architectures》中首次提出了“REST”的概念。之後,這篇論文受到了廣泛的關注,在當時的網際網路界掀起了軒然巨波,對網際網路的發展産生了深遠的影響。

一文讀懂RESTful架構,讓背景開發不再困難!

Fielding 所提出的"REST"可以看作是一種網際網路軟體架構原則,凡是符合REST原則的架構,都可稱之為“RESTful"架構。

一文讀懂RESTful架構,讓背景開發不再困難!

RESTful的英文全稱為Representational State Transfer,直接翻譯過來即為“表現層狀态轉化”,看到這兒,你可能還是不明白,到底什麼是RESTful啊?可以用人話表示一下嗎?其實“表現層”省略了主語,它指的是“資源”的表現層。下面,我們來慢慢詳解有關内容。

(1)資源(Resources)

RESTful中的資源指的是,網際網路上的一個實體或是一條有價值的資訊。資源可以是一段文本、一張圖檔、一首歌曲、一種服務。每種資源對應着一個特定的URL(Uniform Resource Locator)——統一資源定位符。

一文讀懂RESTful架構,讓背景開發不再困難!

URI成為了每一個資源的位址,更像是獨一無二的識别符。是以,從這個角度來看,所謂的“上網”,就是調用URL與網際網路上的一些“資源”互動。

一文讀懂RESTful架構,讓背景開發不再困難!

(2)表現層(Representation)

我們将網際網路上,資源所呈現出來各中表現形式,稱為它的“表現層”。例如,文本可以由TXT表現,也可由XML、HTML、JSON等形式表現。這些都屬于文本的“表現層”。

一文讀懂RESTful架構,讓背景開發不再困難!

(3)狀态轉化(State Transfer)

在通路網際網路的過程中,必然存在着用戶端和伺服器的互動,是以也必然涉及着資料和狀态的變化。

一文讀懂RESTful架構,讓背景開發不再困難!

另外,網際網路的通信協定是基于HTTP的無狀态協定。這就意味着,所有的狀态都儲存在伺服器端。是以,如果用戶端想要操作伺服器,即前台想要通路背景資源時,必須通過一定的方法途徑,讓伺服器端發生"狀态轉化"(State Transfer)。這種轉化又恰好是發生在表現層之上的,是以這個過程就被稱之為"表現層狀态轉化"。

一文讀懂RESTful架構,讓背景開發不再困難!

由于基于HTTP協定,用戶端來使服務端發生變化的操作也就是常用的GET、POST、PUT、DELETE這四個操作。GET----擷取資源,POST----建立資源,PUT----更新資源,DELETE----删除資源。

是以,RESTful用一句話來概括就是”URL定位資源,用HTTP動詞(GET,POST,DELETE,DETC)描述操作。"

(4)為什麼要用RESTful架構?

近年來前端裝置層出不窮(手機、平闆、桌面電腦、其他專用裝置......),不同的前端裝置與後端進行通信互動時,每一個都要寫上不同的協定嗎?

一文讀懂RESTful架構,讓背景開發不再困難!

答案當然是不必須的,RESTful正是為解決此問題而誕生的。它可以通過一套統一的接口為 Web,iOS和Android等不同前端提供服務,建立統一的背景管理。

如果你耐心的看完了此文,那麼恭喜你,關于RESTful的理論知識你已全部掌握~記得下次一起來實戰哦~

繼續閱讀