|
簡單對象訪問協(xié)議 (SOAP ,全寫為Simple Object Access Protocol )是一種標(biāo)準化的通訊規(guī)范,主要用于Web服務(wù) (web service)中。SOAP的出現(xiàn)是為了簡化網(wǎng)頁服務(wù)器(Web Server)在從XML數(shù)據(jù)庫中提取資料時,無需花時間去格式化頁面,并能夠讓不同應(yīng)用程式之間透過HTTP通訊協(xié)定,以XML 格式互相交換彼此的資料,使其與編程語言、平臺和硬件無關(guān)。此標(biāo)準由IBM、Microsoft、UserLand和DevelopMentor在1998年共同提出,并得到IBM,蓮花(Lotus),康柏(Compaq)等公司的支持,于2000年提交給萬維網(wǎng)聯(lián)盟 (World Wide Web Consortium ;W3C),目前 SOAP 1.1 版是業(yè)界共同的標(biāo)準,屬于第二代的XML協(xié)定(第一代具主要代表性的技術(shù)為XML-RPC以及WDDX)。 用一個簡單的例子來說明 SOAP 使用過程,一個 SOAP 消息可以發(fā)送到一個具有 Web Service 功能的 Web 站點,例如,一個含有房價信息的數(shù)據(jù)庫,消息的參數(shù)中標(biāo)明這是一個查詢消息,此站點將返回一個 XML 格式的信息,其中包含了查詢結(jié)果(價格,位置,特點,或者其他信息)。由于數(shù)據(jù)是用一種標(biāo)準化的可分析的結(jié)構(gòu)來傳遞的,所以可以直接被第三方站點所利用。
表象化狀態(tài)轉(zhuǎn)變 目前在三種主流的Web服務(wù) 實現(xiàn)方案中,因為REST模式的Web服務(wù) 與復(fù)雜的SOAP 和XML-RPC 對比來講明顯的更加簡潔,越來越多的web服務(wù)開始采用REST風(fēng)格設(shè)計和實現(xiàn)。例如,Amazon.com 提供接近REST風(fēng)格的Web服務(wù)進行圖書查找;雅虎 提供的Web服務(wù)也是REST風(fēng)格的。 <script type="text/javascript"> //<![CDATA[ if (window.showTocToggle) { var tocShowText = "顯示"; var tocHideText = "隱藏"; showTocToggle(); } //]]> </script> 宗旨REST 從資源的角度來觀察整個網(wǎng)絡(luò),分布在各處的資源由URI 確定,而客戶端的應(yīng)用通過URI來獲取資源的表形。獲得這些表形致使這些應(yīng)用程序轉(zhuǎn)變了其狀態(tài)。隨著不斷獲取資源的表形,客戶端應(yīng)用不斷地在轉(zhuǎn)變著其狀態(tài),所謂表形化的狀態(tài)轉(zhuǎn)變(Representational State Transfer)。 這一觀點不是憑空臆造的,而是通過觀察當(dāng)前Web互聯(lián)網(wǎng)的運作方式而抽象出來的。Roy Fielding 認為,
要點及標(biāo)準需要注意的是,REST是一種設(shè)計風(fēng)格而不是 一個標(biāo)準。REST通?;谑褂?a class=mw-redirect title=HTTP href="http://zh./w/index.php?title=HTTP&variant=zh-cn">HTTP ,URI ,和XML 以及HTML 這些現(xiàn)有的廣泛流行的協(xié)議和標(biāo)準。
REST的要求
關(guān)于狀態(tài)應(yīng)該注意區(qū)別應(yīng)用的狀態(tài)和連接協(xié)議的狀態(tài)。REST對于連接的無狀態(tài)性實際上要求每次經(jīng)過無狀態(tài)的連接協(xié)議傳送的信息必須包含應(yīng)用中所有的狀態(tài)信息。 實現(xiàn)舉例例如,一個簡單的網(wǎng)絡(luò)商店應(yīng)用, 列舉所有商品, GET http://www./products
具體某一件商品, GET http://www./product/12345
下單購買, POST http://www./order,
<purchase-order>
<item> ... </item>
</purchase-order>
REST的優(yōu)點
|
|
|