百度百科解釋:
rest:REST即表述性狀態傳遞(英文:Representational State Transfer,簡稱REST)是Roy Fielding博士在2000年他的博士論文中提出來的一種軟件架構風格。它是一種針對網絡應用的設計和開發方式,可以降低開發的復雜性,提高系統的可伸縮性。
restful:一種軟件架構風格、設計風格,而不是標准,只是提供了一組設計原則和約束條件。它主要用於客戶端和服務器交互類的軟件。基於這個風格設計的軟件可以更簡潔,更有層次,更易於實現緩存等機制。
百度百科的解釋有點專業化,但我們可以從另外一個角度,以舉例的方式來闡述:
通常的web項目的CRUD發出的url一般為
| URL | 請求方式 | 操作 |
| http://localhost:8080/myweb/queryById?id=1 或 http://localhost:8080/myweb/query?id=1 |
GET | 根據id查詢數據 |
| http://localhost:8080/myweb/save 或 http://localhost:8080/myweb/add |
POST | 新增數據 |
| http://localhost:8080/myweb/modify 或 http://localhost:8080/myweb/update |
POST | 修改數據 |
| http://localhost:8080/myweb/removeById?id=1 |
GET/POST | 根據id刪除數據 |
一看之下是不是很不爽,同樣的操作對應這各種不同的url,而且用到的Http 的請求方式要么是GET 要么是POST,然后實際上Http 的請求方式有八種!
正如此,restful強調的是,一種資源(操作)在網絡上對應的有且僅有一個url,而用Http 自身的請求方式來闡述要進行的操作。
| URL | 請求方式 | 操作 |
| http://localhost:8080/myweb/query/1 | GET | 根據id查詢數據 |
| http://localhost:8080/myweb/add | POST | 新增數據 |
| http://localhost:8080/myweb/modify | PUT | 修改數據 |
| http://localhost:8080/myweb/remove/1 | DELETE | 根據id刪除數據 |
兩個表格對比之下就簡單明了,restful 風格的url 中是不帶“動詞”的,用請求的方式來描述“動詞”,這樣的話GET 請求就是查詢,POST 請求就是新增,PUT 請求就是修改,DELETE 請求就是刪除。
如果按照以前的話,一個查詢就可以有多種url,命名不規范,不能很好的統一,這就是為什么有restful 的原因。
