RESTful是什么:
首先要了解什么是REST,REST就是(REpresentational State Transfer單詞太長(zhǎng)記不住就對(duì)了)是一種構(gòu)架風(fēng)格,REST指的是一組架構(gòu)約束條件和原則宜鸯。滿(mǎn)足這些約束條件和原則的應(yīng)用程序或者設(shè)計(jì)就是RESTful锨亏,核心就是面向資源活合,REST專(zhuān)門(mén)針對(duì)網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)和開(kāi)發(fā)方式蓖扑,以降低開(kāi)發(fā)的復(fù)雜性,提高系統(tǒng)的可伸縮性玖院,為什么這么說(shuō)菠红,因?yàn)镽ESTful是無(wú)狀態(tài)的,無(wú)狀態(tài)是指任意一個(gè)web請(qǐng)求必須完全與其他請(qǐng)求隔離难菌,是獨(dú)立的试溯,當(dāng)請(qǐng)求端提出請(qǐng)求時(shí),請(qǐng)求本身包含了這一請(qǐng)求的全部信息郊酒,這個(gè)約束提高系統(tǒng)的可伸縮性遇绞,可見(jiàn)性,可靠性燎窘。無(wú)狀態(tài)優(yōu)勢(shì)就是在調(diào)用接口摹闽,操作資源的時(shí)候,可以不考慮上下文褐健,不用考慮當(dāng)前狀態(tài)付鹿,降低復(fù)雜度。
WebService是什么:
WebService就是一個(gè)應(yīng)用程序蚜迅,它向外界暴露出一個(gè)能夠通過(guò)Web進(jìn)行調(diào)用的API舵匾。也就是說(shuō),你可以通過(guò)編程的方法通過(guò)Web來(lái)調(diào)用這個(gè)應(yīng)用程序谁不。它可以跨編程語(yǔ)言坐梯,跨操作系統(tǒng)平臺(tái)的這么一個(gè)遠(yuǎn)程調(diào)用技術(shù),采用SOAP(面向?qū)ο笤L問(wèn)協(xié)議)協(xié)議傳輸刹帕。差不多就是這樣吵血,深入點(diǎn)的我也不是很清楚谎替。
RESTful跟WebService的區(qū)別:
咳咳,上面所述蹋辅,REST是一種架構(gòu)風(fēng)格钱贯,其核心是面向資源,遵循CRUD原則晕翠,這個(gè)原則告訴我們對(duì)于資源只需要4種行為喷舀,分別是:創(chuàng)建砍濒,獲取淋肾,更新和刪除,并且這些資源執(zhí)行的操作時(shí)通過(guò)HTTP協(xié)議規(guī)定的爸邢,而WebService底層是SOAP協(xié)議樊卓,核心是面向活動(dòng),有嚴(yán)格的規(guī)范和標(biāo)準(zhǔn)杠河,包括安全碌尔,事務(wù)等方面。
那么我們是使用RESTful還是WebService就需要考慮資源本身的 券敌,看資源本身是那種簡(jiǎn)單的類(lèi)似增刪改查的業(yè)務(wù)操作唾戚,還是那種比較復(fù)雜,如轉(zhuǎn)賬待诅,事務(wù)處理等叹坦。其次是看是否有嚴(yán)格的規(guī)范和標(biāo)準(zhǔn)的,而且有多個(gè)業(yè)務(wù)系統(tǒng)集成和開(kāi)發(fā)的時(shí)候卑雁,我們使用SOAP協(xié)議就比較優(yōu)勢(shì)募书,如果是簡(jiǎn)單的數(shù)據(jù)操作,無(wú)事務(wù)處理测蹲,開(kāi)發(fā)和調(diào)用比較簡(jiǎn)單的話使用REST架構(gòu)風(fēng)格比較有優(yōu)勢(shì),較為復(fù)雜的面向活動(dòng)的服務(wù),我們使用REST意義不大幢码。
總結(jié):
它們之間沒(méi)有好與壞币砂,只有適合不適合,都各自有自己的優(yōu)點(diǎn)琉挖。