RESTVSSOAP是不該問的是正確的問題。
REST,不像SOAP是不一項協議。
REST是建筑風格和一個設計用于基于網絡的軟件體系結構。
REST概念被稱為資源。資源的表示必須是無狀態的。它是通過某種媒體類型表示的。媒體類型的一些示例包括XML, JSON,和RDF..資源被組件操縱。組件通過標準的統一接口請求和操作資源。在HTTP的情況下,這個接口由標準的HTTP操作組成。GET, PUT, POST, DELETE.
@Abdulaziz的問題確實說明了REST和HTTP經常被串聯使用。這主要是由于HTTP的簡單性及其對RESTful原則的非常自然的映射。
基本休息原則
客戶-服務器通信
客戶機-服務器體系結構具有非常明顯的關注點分離。所有以RESTful風格構建的應用程序原則上也必須是客戶機-服務器。
無國籍
對服務器的每個客戶端請求都要求充分表示其狀態。服務器必須能夠完全理解客戶端請求,而無需使用任何服務器上下文或服務器會話狀態。因此,所有狀態都必須保持在客戶端上。
可緩存
可以使用緩存約束,從而允許將響應數據標記為可緩存或不可緩存。標記為可緩存的任何數據可重用為對相同后續請求的響應。
均勻界面
所有組件必須通過一個統一的接口進行交互。因為所有組件交互都是通過這個接口進行的,所以與不同服務的交互非常簡單。界面是一樣的!這也意味著可以隔離地進行實現更改。這樣的改變,不會影響基本的組件交互,因為統一的接口總是不變的。一個缺點是你被這個界面卡住了。如果可以通過更改接口向特定的服務提供優化,那么REST禁止這樣做,這是不合時宜的。然而,好的一面是,REST是針對Web進行優化的,因此REST在HTTP上非常受歡迎!
上述概念表示REST的定義特性,并將REST體系結構與其他體系結構(如Web服務)區分開來。值得注意的是,REST服務是Web服務,但Web服務不一定是REST服務。
看這個博客崗在……上面REST設計原則的更多細節休息上面所說的子彈。
編輯:根據評論更新內容