soap協(xié)議只是用來(lái)封裝消息用的。封裝后的消息你可以通過(guò)各種已有的協(xié)議來(lái)傳輸,比如http,tcp/ip,smtp,等等,你甚至還一次用自定義的協(xié)議,當(dāng)然也可以用https協(xié)議。
Soap建立在http上,說(shuō)白了是用http傳送xml而已。
除了WebService外,常見(jiàn)的遠(yuǎn)程調(diào)用技術(shù)還有RMI(Remote method invoke)和CORBA,由于WebService的跨平臺(tái)和跨編程語(yǔ)言特點(diǎn),因此比其他兩種技術(shù)應(yīng)用更為廣泛,但性能略低。
WebService使用SOAP協(xié)議實(shí)現(xiàn)跨編程語(yǔ)言和跨操作系統(tǒng)平臺(tái)
WebService采用HTTP協(xié)議傳輸數(shù)據(jù),采用XML格式封裝數(shù)據(jù)(即XML中說(shuō)明調(diào)用遠(yuǎn)程服務(wù)對(duì)象的哪個(gè)方法,傳遞的參數(shù)是什么,以及服務(wù)對(duì)象的返回結(jié)果是什么)。WebService通過(guò)HTTP協(xié)議發(fā)送請(qǐng)求和接收結(jié)果時(shí),發(fā)送的請(qǐng)求內(nèi)容和結(jié)果內(nèi)容都采用XML格式封裝,并增加了一些特定的HTTP消息頭,以說(shuō)明HTTP消息的內(nèi)容格式,這些特定的HTTP消息頭和XML內(nèi)容格式就是SOAP協(xié)議(simple object access protocol,簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議) 。
SOAP協(xié)議= HTTP協(xié)議+ XML數(shù)據(jù)格式
SOAP協(xié)議是基于HTTP協(xié)議的,兩者的關(guān)系就好比高速公路是基于普通公路改造的,在一條公路上加上隔離欄后就成了高速公路。
商店的服務(wù)員只要收到了錢(qián)就給客戶提供貨物,商店服務(wù)員不用關(guān)心客戶是什么性質(zhì)的人,客戶也不用關(guān)心商店服務(wù)員是什么性質(zhì)的人。同樣,WebService客戶端只要能使用HTTP協(xié)議把遵循某種格式的XML請(qǐng)求數(shù)據(jù)發(fā)送給WebService服務(wù)器,WebService服務(wù)器再通過(guò)HTTP協(xié)議返回遵循某種格式的XML結(jié)果數(shù)據(jù)就可以了,WebService客戶端與服務(wù)器端不用關(guān)心對(duì)方使用的是什么編程語(yǔ)言。
?HTTP協(xié)議和XML是被廣泛使用的通用技術(shù),各種編程語(yǔ)言對(duì)HTTP協(xié)議和XML這兩種技術(shù)都提供了很好的支持,WebService客戶端與服務(wù)器端使用什么編程語(yǔ)言都可以完成SOAP的功能,所以,WebService很容易實(shí)現(xiàn)跨編程語(yǔ)言,跨編程語(yǔ)言自然也就跨了操作系統(tǒng)平臺(tái)