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