1. 程式人生 > >Web Service系列(五)RESTFUL風格

Web Service系列(五)RESTFUL風格

RESTFUL風格

一種軟體架構風格,設計風格而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器互動類的軟體。基於這個風格設計的軟體可以更簡潔。

REST : Representational State Transfer (資源的)表現層狀態轉化

++一個資源對應一個url++,他的表現格式有很多種,可以用HTML格式、XML格式、JSON格式表現,然而訪問一個網站,就代表了客戶端和伺服器的一個++互動過程++。在這個過程中,++勢必涉及到資料和狀態的變化++。

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

RESTFUL風格就讓這種狀態轉化形成一定的風格(也是一種習慣)

  • Restful 風格: http://bbs.csdn.net/topics/390908212
  • 非resfull風格:http://bbs.csdn.net/topics?tid=390908212

請求方式

在HTTP協議中請求方式有7中:GET,HEAD,POST,OUT,DELETE,OPTIONS,TRACE,然而在狀態轉化中每一個請求方式都會對應一個操作

  • GET : 用來獲取資源, 對應操作:查詢方法
  • POST : 用來新建資源, 對應操作:insert 新增儲存
  • PUT : 用來更新資源, 對應操作:update
  • DELETE : 用來刪除資源。 對應操作:delete

所以 訪問伺服器資源,
通過不同的http請求方式,伺服器就知道對CRUD的哪個操作!

JAX-RS 釋出服務就是使用RESTFUL風格。

總結

綜合上面的解釋,我們總結一下什麼是RESTful架構:
1. 每一個URI代表一種資源;

  1. 客戶端和伺服器之間,傳遞這種資源的某種表現層;
  2. 客戶端通過四個HTTP動詞,對伺服器端資源進行操作,實現”表現層狀態轉化”。