參見文檔:http://wenku.baidu.com/link?url=Td_jy9qpvew-U92NRfnIGinfcjUO2PDWFISQi4WOMwfQdr3c5L2zxkhQJm0giVcq-IAxr3Qg-8w53CpLdfM08DMBagl1ed8w6yJxJX-bd6C Restful web service:Rest是針對(duì)Web提出的一種架構(gòu)風(fēng)格,,Restful web service本質(zhì)上就是Web,,任意一個(gè)URL地址,一個(gè)HTTP網(wǎng)頁(yè)都可以稱作是Restful web service,。Rest把網(wǎng)絡(luò)上的所有事物抽象為資源,,把對(duì)資源的操作抽象為CRUD,對(duì)應(yīng)HTTP的put,,get,,Post,delete,。注意此處的資源不是靜態(tài)的數(shù)據(jù),,而是數(shù)據(jù)加上狀態(tài),,是隨時(shí)間變化的,每個(gè)資源有一個(gè)唯一的標(biāo)識(shí),,URL,。 Rest提出了一些設(shè)計(jì)概念和準(zhǔn)則: 1、網(wǎng)絡(luò)上的所有事物都被抽象為資源(resource),; 2,、每個(gè)資源有一個(gè)唯一的資源標(biāo)識(shí)(resource identifier),; 3,、通過通用的連接器接口(generic connector interface)對(duì)資源進(jìn)行操作; 4,、對(duì)資源的各種操作不會(huì)改變資源標(biāo)識(shí),; 5、所有的操作都是無狀態(tài)的(stateless),。 soap與Rest區(qū)別: 1,、soap也可以看作是一種風(fēng)格,面對(duì)的應(yīng)用需求是RPC,,而Rest面對(duì)的應(yīng)用需求是分布式超媒體系統(tǒng)(Web),。 2、Rest架構(gòu)風(fēng)格更強(qiáng)調(diào)數(shù)據(jù),,請(qǐng)求和響應(yīng)消息都是數(shù)據(jù)的封裝,。而soap風(fēng)格更強(qiáng)調(diào)接口,soap消息封裝的是過程調(diào)用,。Rest是面向資源的,,而soap是面向接口的。 3,、Rest架構(gòu)下,,HTTP是承載協(xié)議,也是應(yīng)用協(xié)議,,而soap架構(gòu)下,,HTTP只是承載協(xié)議,soap才是應(yīng)用協(xié)議,。 soap與Rest的應(yīng)用場(chǎng)合 1,、過程調(diào)用用soap。若服務(wù)是作為一種功能提供,,客戶端調(diào)用服務(wù)是為了執(zhí)行一個(gè)功能,,用soap,比如常見的認(rèn)證授權(quán),。而數(shù)據(jù)服務(wù)用Rest,。 2、可以定義清晰明了的正式接口的情況下,用soap,,比如在企業(yè)應(yīng)用中,,系統(tǒng)間的耦合采用面向接口的方式。 3,、要更多的考慮非功能需求,,比如安全、傳輸,、協(xié)作等需求,,使用soap。 4,、低帶寬,,客戶端的處理能力受限的場(chǎng)合,比如在PDA,,手機(jī)上消費(fèi)服務(wù),,用Rest。
|
|