轉(zhuǎn)載請(qǐng)注明出處:http://www.cnblogs.com/Starshot/p/7050084.html
Soap即簡(jiǎn)單對(duì)象訪問協(xié)議,也可理解為一種用于程序之間通訊的規(guī)范,它主要基于XML和http,也正因?yàn)榛赬ML和http,所以這個(gè)協(xié)議具有很強(qiáng)的通用性,能夠很好地實(shí)現(xiàn)不同語言平臺(tái)之間的交流通訊。缺點(diǎn)是相對(duì)比較重量級(jí)。
Java的Soap框架有很多,例如xfire,CXF。說到soap不得不提一下rest,因?yàn)檫@些概念很容易弄混。
rest是一種結(jié)構(gòu)風(fēng)格,而實(shí)現(xiàn)了rest風(fēng)格的程序設(shè)計(jì)就叫做restful。它提倡更加輕量級(jí)、無狀態(tài)、自描述,更充分地利用http本身的特性,例如get,post,put,delete,以獲得更加高效的性能,使交互更加簡(jiǎn)潔易懂。例如要獲取圖書集合中的某本書AAA,可以直接通過uri:/books/AAA來表示。
而soap則都是通過post來請(qǐng)求的,沒有充分利用http的其它方法,僅將http作為傳輸協(xié)議來使用,而具體需要獲取的資源信息則包含在post的xml報(bào)文中。
需要注意的是,rest是一種風(fēng)格,它不限制于某個(gè)程序某個(gè)框架。例如CXF框架,它既可以實(shí)現(xiàn)rest風(fēng)格的webService,也可以實(shí)現(xiàn)SOAP規(guī)范的webService。例如在我另一篇博文中的CXF簡(jiǎn)單例子(http://www.cnblogs.com/Starshot/p/6889751.html),就可以看做是rest風(fēng)格的webService。