是否有任何拇指規則可以在兩種思想流派之間做出決定:SOAP和REST?在Web服務實現之間做出決定的縮略規則:SOAP/REST?
回答
這取決於很多因素。一個不比另一個好。 Here is a list of differences I wrote before。
這不是「拇指規則」,但David Chappell在今年的ESRI DevSummit主題演講中對SOAP與REST進行了精彩的演示。如果您有一些時間,我強烈建議您聆聽它。
首先,而SOAP是專門針對Web的技術,REST無關與HTTP,但仍然是非常適合於Web服務。 REST也是一種體系結構,而不是SOAP協議。因此,只要遵守體系結構的約束條件,實現RESTful服務的方法有很多。
REST更適合傳統的HTTP堆棧,因爲它要求在可能的情況下正確使用協議。 SOAP僅僅使用HTTP作爲它自己的協議周圍的一種包裝器/代理,這不是HTTP的目的。 SOAP嘗試解決HTTP的限制,但它沒有充分利用HTTP提供的許多優勢。
例如,位於客戶端和內容服務器中間的緩存服務器應該能夠緩存請求和響應,而不理解每個內容的任何內容,這對於SOAP來說是不可能的,因爲需要的實際內容被緩存的是HTTP消息內容的一個子集,在一堆SOAP包裝和專有結構中。 RESTful服務沒有這個問題,所以它們的規模更自然。
要獲得關於REST的最佳信息來源,請閱讀Fielding的dissertation和他的blog,他清除了常見的誤解。 (他是創建REST規範的人)
-1:「更適合傳統的HTTP協議棧,因爲它需要正確的用法」 - 什麼適合與任何事情有關,以及要求正確的用法如何實現它? SOAP使用HTTP作爲許多可能的傳輸之一,這個概念對於任何懂得分層網絡協議的人都應該是熟悉的。 SOAP爲什麼要關心利用HTTP提供的優勢?這是一個_protocol_。我希望你只會緩存GET請求和響應?什麼「專有結構」? – 2009-07-23 10:01:50
下面是一個問題:如果您對HTTP以外的其他傳輸方式沒有任何用處,那麼REST可能是更好的選擇。
- 1. 在extJS和GWT之間做出決定
- 2. java服務vs規則引擎實現
- 3. TSQL兩個表之間的業務規則實現
- 4. Apache Web服務器後端服務器重定向規則
- 5. 在MVC中實現業務規則
- 6. DSL實現REST服務路由和處理的業務規則
- 7. 如何根據JAX-WS規範發現Web服務實現類?
- 8. 哪些Web服務規範(WS- *)實際上有意義實現?
- 9. 如何在WCF Web服務中實現策略?
- 10. 根據業務規則選擇服務實現
- 11. Sun的Web服務規範的默認實現?
- 12. 實現Hessian web服務
- 13. Web服務實現Java EE
- 14. 實現Web服務回調
- 15. 實現Web服務在iPhone SDK的WSDL
- 16. 在服務器之間縮放socket.io
- 17. WCF的Web服務發現解決
- 18. 如何複製SonarQube服務器之間的規則?
- 19. 在Web服務(ASMX)的實例之間切換
- 20. 編譯器如何在vector和initializer_list之間做出決定?
- 21. 在策略遊戲中實現不規則形狀的區域
- 22. Axis2 web服務和CXF Web服務之間的差異
- 23. Exchange 2003 Web服務和Exchange 2007 Web服務之間的差異
- 24. Web Sphere Web服務運行時實現
- 25. 在項目之間共享Web服務
- 26. 在Web服務之間共享數據
- 27. 如何在JAX-RS和JAX-WS Web服務實現之間進行選擇?
- 28. 部署規則服務WSO2業務規則服務器
- 29. 如何實現在web服務安全
- 30. 在PHP和JavaScript中實現Web服務。
謝謝!這是一個整潔的清單。 – Swanand 2009-07-22 16:14:26