怎樣用通俗的語言解釋REST,以及RESTful?

2021-08-10 06:00:27 字數 1418 閱讀 6848

一句話:就是用url定位資源,用http描述操作。

我在這裡的答案主要解釋什麼是rest? 為什麼要用rest?不包括具體該如何使用rest風格,你可以在網上看教程去學習相關知識。

現在稍微具體一下什麼是rest架構風格。rest也就是representational state transfer(表現層狀態轉移)。要具體什麼事rest,我們又必須提到web(大神請忽略這裡,因為我這篇是想帶0基礎的人入門的),因為rest是以web為平台的。

web是什麼: 分布式資訊系統為超文字檔案和其他物件(資源)提供訪問入口

資源是web架構的,

關鍵點,需要 3個操作,

所以rest就是選擇通過使用http協議和uri,利用client/server model對資源進行crud (create/read/update/delete)增刪改查操作。

那麼為什麼要使用rest風格呢?肯定是因為它的優點,所以才選擇使用它呀。因此現在先介紹它的優點,要介紹它的優點又要提到它的六個限制,我看其他答案只提到了限制,但是沒有寫限制的好處,在這裡我列出限制和它的好處:

1.客戶-伺服器(client-server)客戶端伺服器分離

優點,提高使用者介面的便攜性(操作簡單)

通過簡化伺服器提高可伸縮性(高效能,低成本)

允許元件分別優化(可以讓服務端和客戶端分別進行改進和優化)

2.無狀態(stateless)

從客戶端的每個請求要包含伺服器所需要的所有資訊

優點:提高可見性(可以單獨考慮每個請求)

提高了可靠性(更容易從區域性故障中修復)

提高可擴充套件性(降低了伺服器資源使用)

3.快取(cachable)伺服器返回資訊減少互動次數必須被標記是否可以快取,如果快取,客戶端可能會重用之前的資訊傳送請求。

優點:減少互動次數

減少互動的平均延遲

4.分層系統(layered system)

系統元件不需要知道與他交流元件之外的事情。封裝服務,引入中間層。

優點:

限制了系統的複雜性

提高可擴充套件性

5.統一介面(uniform inte***ce)

優點:

提高互動的可見性

鼓勵單獨改善元件

6.支援按需**(code-on-demand 可選)

優點:

提高可擴充套件性

因為其他答案已經提到了一些概念,所以我沒有多寫。

推薦書籍 rest in practice有中文版的,如果英語沒有達到像看中文一樣,我還是推薦先看中文的,效率會高一點

如果去網上搜尋網頁,字數不多的文章,我建議看英文版的,寫的會好一點。

一些api的例子:

twitter 的api

paypal 的api

怎樣用通俗的語言解釋REST

以下內容取自知乎 rest representational state transfer 首先,之所以晦澀是因為前面主語被去掉了,全稱是 resource representational state transfer 通俗來講就是 資源在網路中以某種表現形式進行狀態轉移。分解開來 resourc...

怎樣用ntdsutil刪除ad中的垃圾資訊

以下是關於如何利用ntdsutil刪除域控制器的操作步驟,供您參考。c ntdsutil ntdsutil metadata cleanup metadata cleanup select operation target select operation target connections se...

怎樣用Java來獲取真實的IP位址

在jsp裡,獲取客戶端的ip位址的方法是 request.getremoteaddr 這種方法在大部分情況下都是有效的。但是在通過了apache,squid等反向 軟體就不能獲取到客戶端的真實ip位址了。如果使用了反向 軟體,將http 192.168.1.110 2046 的url反向 為 htt...