轉(zhuǎn)載請注明出處:http://www.cnblogs.com/Starshot/p/7050084.html

 

Soap即簡單對象訪問協(xié)議,也可理解為一種用于程序之間通訊的規(guī)范,它主要基于XML和http,也正因為基于XML和http,所以這個協(xié)議具有很強的通用性,能夠很好地實現(xiàn)不同語言平臺之間的交流通訊。缺點是相對比較重量級。

Java的Soap框架有很多,例如xfire,CXF。說到soap不得不提一下rest,因為這些概念很容易弄混。

rest是一種結(jié)構(gòu)風(fēng)格,而實現(xiàn)了rest風(fēng)格的程序設(shè)計就叫做restful。它提倡更加輕量級、無狀態(tài)、自描述,更充分地利用http本身的特性,例如get,post,put,delete,以獲得更加高效的性能,使交互更加簡潔易懂。例如要獲取圖書集合中的某本書AAA,可以直接通過uri:/books/AAA來表示。

而soap則都是通過post來請求的,沒有充分利用http的其它方法,僅將http作為傳輸協(xié)議來使用,而具體需要獲取的資源信息則包含在post的xml報文中。

需要注意的是,rest是一種風(fēng)格,它不限制于某個程序某個框架。例如CXF框架,它既可以實現(xiàn)rest風(fēng)格的webService,也可以實現(xiàn)SOAP規(guī)范的webService。例如在我另一篇博文中的CXF簡單例子(http://www.cnblogs.com/Starshot/p/6889751.html),就可以看做是rest風(fēng)格的webService。

 

網(wǎng)友評論