什麼是 RESTful ?

約束

前後端分離出現後,後端提供給前端的 API 應該如何設計成則便於理解容易使用的,成了一個問題。而所謂的 RESTful 就是用來規範後端提供的 API 的一種約束

Representational State Transfer

RESTful,意思是 REST 風格的。

REST 是 Representational State Transfer 的縮寫,意思是表現層的 狀態 轉化

這裏其實還缺一個東西。什麼的表現層?Resources,資源

Resources

Resources,資源,網絡上的一個信息實體。它可以是一段文本、一張圖片、一首歌曲、一種服務。

每一個資源都有一個唯一標識,在 Web 中這個唯一標識就是URI (Uniform Resource Identifier)。
URI 既可以是資源的地址(URL,Uniform Resource Location),也可以是資源的名稱(URN,Uniform Resource Name)。

要獲取這個資源,訪問它的URI就可以。所謂"上網",就是與互聯網上一系列的"資源"互動,調用它的URI。

Representational

Representational,表現層的。表現層是資源的表現形式。如果資源是文本,表現層可以是 txt、html、json;如果資源是文件,表現層可以是 jpg、png。

State Transfer

State Transfer,狀態轉化。

訪問一個網站,就代表了客戶端(前端)和服務器(後端)的一個互動過程。在這個過程中,勢必涉及到數據和狀態的變化。

互聯網通信協議 HTTP 協議,是一個無狀態協議。這意味着,所有的狀態都保存在服務器端。因此,如果客戶端想要操作服務器,必須通過某種手段,讓服務器端發生"狀態轉化"( State Transfer)。而這種轉化是建立在表現層之上的,所以就是"表現層狀態轉化"。

客戶端用到的手段,目前來說只能是 HTTP 協議。具體來說,就是 HTTP 協議裏面,四個表示操作方式的動詞:POST、 DELETE、PUT、GET,對應增刪改查。

GET、PUT 和 DELETE 都是冪等(一次和多次請求產生相同的副作用)的。

對於這四種操作,前端利用 Ajax 裏的 method,後端利用 @RequestMapping(method= ),只有兩者對應才能訪問成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章